2

これが私のシナリオです:

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);
    }
 }
}
4

1 に答える 1