これが私のシナリオです:
PassedException
多くのテストで、 (テストは成功したが、実行を停止するために作成した例外) を スローすることがあります。
もともと、私のすべてのテストには , があり、最後にexpectedExceptions = PassedException.class
a を投げました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);
}
}
}