pkg/framework Release v0.6.16
·
122 commits
to master
since this release
Release notes
Features
✨ Major:
Parametrized tests
Now you can run your parametrized tests in new way at GO
- ❓ How to use it?
- You need extend your suite struct with array of parameters. Its name MUST be like
ParamTestNameWithoutPrefix
.
i.e. if your test named likeTableTestCities
so param should have nameParamCities
- You need to create test method that will take your parameter as second argument after
provider.T
. Test name **
MUST** have prefixTableTest
instead of justTest
. i.e.TableTestCities
.
Simple example:
package suite_demo
import (
"testing"
"github.com/jackc/fake"
"github.com/ozontech/allure-go/pkg/framework/provider"
"github.com/ozontech/allure-go/pkg/framework/suite"
)
type ParametrizedSuite struct {
suite.Suite
// ParamCities param has name as expected test but has prefix Param instead of TableTest
ParamCities []string
}
func (s *ParametrizedSuite) BeforeAll(t provider.T) {
for i := 0; i < 10; i++ {
s.ParamCities = append(s.ParamCities, fake.City())
}
}
// TableTestCities is parametrized test has name prefix TableTest instead of Test
func (s *ParametrizedSuite) TableTestCities(t provider.T, city string) {
t.Parallel()
t.Require().NotEmpty(city)
}
func TestNewParametrizedDemo(t *testing.T) {
suite.RunSuite(t, new(ParametrizedSuite))
}
runner.RunTests
and suite.RunSuites
ouput:
Now runner.RunTests
and suite.RunSuites
returns interface SuiteResult. It contains all information about tests that you can use to customize your allure integrations
✨ Minor:
- reworked test collecting
- now errors in file creations will be logging as
t.Error
- provider.T.Run now returns
allure.Result
pointer