Есть ли способ предпринять определенные действия, если мой тест не прошел? У меня есть тест, который использует селен/fluentlinium для заполнения текстов/кнопок и подтверждения результатов. Я хотел бы иметь возможность предпринимать действия всякий раз, когда условие теста терпит неудачу. Что-то вроде следующегоspecs2- Принять меры при неудаче теста
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)
}
}
}
Есть ли способ, чтобы сделать тест бросок на провал, так что я могу взять снимок в блоке поймать?
Я думаю, что один из способов заключается в использовании предложения, приведенные в:
How to do setup/teardown in specs2 when using "in new WithApplication"
Создать свой собственный «WithBrowser» пользовательской реализации, который отмечает каждый тест, как выход из строя до начала и требует от пользователя этой реализации, чтобы отметить тест, прошедший в конце тестового блока. В пользовательской реализации кода разрыва берет снимок. Я постарался использовать этот подход, но приветствовал бы любые более простые/более простые решения для этого.