ozontech / allure-go

Complete Allure provider in Go which doesn't overload the interface usage
https://t.me/allure_go_chat
Apache License 2.0
306 stars 33 forks source link

[ISSUE-84] support helper #85

Closed siller174 closed 6 months ago

siller174 commented 6 months ago

1) Support Helper() in StepCtx 2) Add helper to Error() and ErrorF This is needed for correct tracing inside the test.

Test: bla_test.go

func TestName(t *testing.T) {
    runner.Run(t, "Single test with allure-go Runner", func(t provider.T) {
        t.Epic("Compare with allure-go")
        t.Description("New Test Description")
        t.WithNewStep("Step description", func(ctx provider.StepCtx) {
            ctx.Errorf("Error message")
        })
    })
}

func TestName1(t *testing.T) {
    runner.Run(t, "Single test with allure-go Runner", func(t provider.T) {
        t.Errorf("Error message")
    })
}

Logs without helper:

=== RUN   TestName
=== RUN   TestName/Single_test_with_allure-go_Runner
    common.go:125: Error message
--- FAIL: TestName (0.00s)
    --- FAIL: TestName/Single_test_with_allure-go_Runner (0.00s)

=== RUN   TestName1
=== RUN   TestName1/Single_test_with_allure-go_Runner
    common.go:125: Error message
--- FAIL: TestName1 (0.00s)
    --- FAIL: TestName1/Single_test_with_allure-go_Runner (0.00s)

Trace from allure: common.go:125: Error message and common.go:125: Error message

Log with helper:

=== RUN   TestName
=== RUN   TestName/Single_test_with_allure-go_Runner
    bla_test.go:15: Error message
--- FAIL: TestName (0.00s)
    --- FAIL: TestName/Single_test_with_allure-go_Runner (0.00s)

=== RUN   TestName1
=== RUN   TestName1/Single_test_with_allure-go_Runner
    bla_test.go:22: Error message 
--- FAIL: TestName1 (0.00s)
    --- FAIL: TestName1/Single_test_with_allure-go_Runner (0.00s)

Trace from test: bla_test.go:15: Error message and bla_test.go:22: Error message