Release v0.5.0
v0.5.0 Release Notes:
- изменение сигнатур тестов в suite'ах. теперь обязательно требуется прокидывать интерфейс provider.T в тесты
func (s *SomeSuite) TestSome(t provider.T) {
t.Title("My Test")
...
}
- изменение сигнатур в анонимных функциях шагов - теперь обязательно нужно прокидывать контекст шага (интерфейс provider.StepCtx)
func (s *SomeSuite) TestSome(t provider.T) {
...
t.WithNewStep("step name", func (ctx provider.StepCtx)) {
ctx.WithNewParameters("param name", "param value")
ctx.WithNewStep("sub step name", func(ctx provider.StepCtx)) {
...
}
...
}
...
}
- все взаимодействия с аллюром перенесены из структуры suite в интерфейс provider.T
- исправлены асинхронные запуски тестов в рамках suite
- добавлена возможность запускать асинхронные шаги
func (s *SomeSuite) TestSome(t provider.T) {
...
t.WithNewAsyncStep("step name", func(ctx StepCtx)) {
// эта анонимная функция отработает в дочернем рутине теста
...
}
...
}
- добавлены обертки для ассертов. Теперь можно оборачивать проверки testify в шаги нативно с помощью пакета assert/require модуля framework. список доступный проверок можно посмотреть в интерфейсе provider.Assert (со временем расширим пул доступных проверок)
Примечание: require-проверки (aka hard-assert, или проверки, убивающие тестовый рутин) не рекомендуется использовать в асинхронных степах во избежание утери данных о состоянии этих проверок. для таких шагов лучше использовать soft-assert'ы
func (s *SomeSuite) TestSome(t provider.T) {
// проверка будет добавлена в отчет как новый шаг
t.Require().Equal(1, 1)
t.WithNewStep("require demo", func(ctx StepCtx)) {
// проверка будет добавлена как sub step в родительский шаг require demo
ctx.Require().Nil(nil)
}
t.WithNewAsyncStep("assert demo", func (ctx StepCtx)) {
// проверка будет добавлена как sub step в родительский шаг assert demo
ctx.Asserts().NotEqual(0, 1)
}
}
- в пакет runner добавлена возможность использовать Before/After all хуки
- в объекте runner теперь обязательно нужно вызывать метод RunTests для запуска добавленных в него тестов
- саб модуль provider теперь часть саб модуля framework
- мелкие изменения функций allure-структур
- добавлен ряд интерфейсов, доступных для расширения