我正在使用TestNG 6.5.1。TestNG每次運行依賴的方法
所以我有測試方法B和C取決於測試方法A.有沒有辦法在運行方法B之前運行方法A,還有在運行方法C之前運行方法A?
我知道明顯的方法是隻調用方法,但我不想這樣做,因爲如果方法A失敗,我不希望方法C也失敗,但要跳過。如果您只有這三種方法,那麼要求另一種方式似乎很愚蠢,但是當您擁有比一切更改更復雜的依賴關係樹時......
我正在使用TestNG 6.5.1。TestNG每次運行依賴的方法
所以我有測試方法B和C取決於測試方法A.有沒有辦法在運行方法B之前運行方法A,還有在運行方法C之前運行方法A?
我知道明顯的方法是隻調用方法,但我不想這樣做,因爲如果方法A失敗,我不希望方法C也失敗,但要跳過。如果您只有這三種方法,那麼要求另一種方式似乎很愚蠢,但是當您擁有比一切更改更復雜的依賴關係樹時......
在測試方法上使用「dependsOnMethods」註釋。
樣品: -
@Test(dependsOnMethods="method2")
public void method1(){
}
請參閱本answer並更改beforeInvocation()如下,
public void beforeInvocation(IInvokedMethod method, ITestResult itr) {
if (method.isTestMethod()) {
//call any method
}
}
你能不能從@Test改變方法的到@BeforeMethod?然後它會在B和C之前運行,如果失敗,它們將被跳過。
是的,我明顯知道dependsOnMethods註解,但不能像我想要的那樣工作......通過使用dependsOnMethod,由B和C所依賴的方法A只運行一次,而不是在運行其他任何方法之前運行。 .. – spauny
看到我更新的答案。 – Akbar
我通過實施Testng MethodInterceptor解決了這個問題。謝謝! – spauny