Java TestNG每次都运行依赖的方法

Java TestNG每次都运行依赖的方法,java,testing,junit,integration-testing,testng,Java,Testing,Junit,Integration Testing,Testng,我正在使用TestNG 6.5.1 所以我有测试方法B和C,这取决于测试方法A。有没有一种方法可以在运行方法B之前运行方法A,也可以在运行方法C之前运行方法A 我知道最明显的方法是只调用方法,但我不希望这样,因为如果方法A失败,我不希望方法C也失败,而是被跳过。如果您只有这三种方法,那么请求另一种方法似乎是愚蠢的,但是当您有一个非常复杂的依赖关系树时,一切都会发生变化……使用测试方法上的“dependsOnMethods”注释 样本:- @Test(dependsOnMethods="metho

我正在使用TestNG 6.5.1

所以我有测试方法B和C,这取决于测试方法A。有没有一种方法可以在运行方法B之前运行方法A,也可以在运行方法C之前运行方法A

我知道最明显的方法是只调用方法,但我不希望这样,因为如果方法A失败,我不希望方法C也失败,而是被跳过。如果您只有这三种方法,那么请求另一种方法似乎是愚蠢的,但是当您有一个非常复杂的依赖关系树时,一切都会发生变化……

使用测试方法上的“dependsOnMethods”注释

样本:-

@Test(dependsOnMethods="method2")
public void method1(){
}

参考此内容并更改beforeInvocation(),如下所示

public void beforeInvocation(IInvokedMethod method, ITestResult itr) {
if (method.isTestMethod()) {
  //call any method
}

}

您能否将方法A从@Test更改为@before方法?然后,它将在B和C之前运行,如果失败,它们将被跳过。

是的,我显然知道dependsOnMethods注释,但这并不是我想要的。。。通过使用dependsOnMethod,方法A(由B和C依赖)只运行一次,而不是在运行其他每个方法之前运行一次……我通过实现Testng MethodInterceptor解决了这个问题。谢谢