Есть ли способ предпринять определенные действия, если мой тест не пройден? У меня есть тест, который использует селен/флюэнтиум для заполнения текстов/нажатий кнопок и утверждения результатов. Я хотел бы иметь возможность предпринимать действия всякий раз, когда условие теста не выполняется. Что-то вроде следующего
class TestSpecial extends Specification{
"Website should" {
"do the right thing" in new WithBrowser( webDriver = WebDriverFactory( FIREFOX ) ){
browser.$( ".xyz1" ).text( "a" )
browser.$( ".xyz2" ).click()
browser.$( ".xyz3" ).getText must equalTo( "foo" )
browser.$( ".xyz1" ).text( "b" )
browser.$( ".xyz2" ).click()
browser.$( ".xyz3" ).getText must equalTo( "bar" )
}
onFailure
{
//context remains same, so I can use browser
MySnapshotFunction.takeSnapshot( browser )
}
}
}
Есть ли способ сделать тестовый бросок при сбое, чтобы я мог сделать снимок в блоке catch?
Я думаю, что один из способов - использовать предложение, данное в:
Как выполнить настройку/разборку в spec2 при использовании в новом WithApplication
Создайте мою собственную пользовательскую реализацию «WithBrowser», которая помечает каждый тест как неудачный перед запуском и требует, чтобы пользователь этой реализации помечал тест как пройденный в конце тестового блока. Пользовательская реализация в коде разрыва делает снимок. Я решил использовать этот подход, но приветствовал бы любые лучшие/более простые решения для этого.