これが私のシナリオです:
PassedException多くのテストで、 (テストは成功したが、実行を停止するために作成した例外) を スローすることがあります。
もともと、私のすべてのテストには , があり、最後にexpectedExceptions = PassedException.classa を投げましたPassedException。私はこの解決策が好きではありませんでした。
myTestListenerの methodonTestFailure(ITestResult result)で、スロー可能な型が であることを確認し、PassedException.classそうであれば を呼び出すように変更しresult.setStatus(ITestResult.SUCCESS)ました。
これは機能します...テストは合格としてマークされますが、別のテストが a をスローしたメソッドに依存している場合PassedException.class、それはスキップされます。
これが事実である理由と、それを修正する方法(または回避策)を知っている人はいますか?
編集:これは重複可能なケースです:
public class PassedException extends RuntimeException{}
public class Tester {
@Test
public static void test1(){
throw new PassedException();
}
@Test(dependsOnMethods = "test1")
public static void test2(){
}
}
public class TestListener extends TestListenerAdapter {
@Override
public void onTestFailure(ITestResult result){
Throwable t = result.getThrowable();
if (t.getClass().equals(PassedException.class)){
result.setStatus(ITestResult.SUCCESS);
}
}
}