我可以通過執行對測試失敗的行動:如何獲取在Java中的Cucumber測試失敗時引發的異常?
@After
public void afterTest(Scenario scenario) {
if (scenario.isFailed()) {
/*Do stuff*/
}
}
但是一些我需要執行的操作取決於拋出的異常,並在它被扔什麼情況。有沒有辦法讓Throwable導致測試失敗?例如JUnit中我會通過延長TestWatcher做到這一點,並增加一條規則,我的測試:
@Override
protected void failed(Throwable e, Description description) {
/*Do stuff with e*/
}
然而,黃瓜的JUnit iplementation不允許使用規則,因此該方案不會與黃瓜工作。
我不認爲我需要解釋爲什麼在訪問測試失敗拋出的異常將是有益的,但是我仍然會提供了一個例子:
我的測試環境並不總是穩定的,所以我的測試可能會失敗意外地在任何時候(沒有特定的地方我可以嘗試捕捉異常,因爲它可能隨時發生)。當發生這種情況時,我需要測試重新安排另一次嘗試,並記錄事件,以便我們可以獲得一些有關環境不穩定性(何時,多頻繁,多久等)的良好統計數據。