8

TestNG doc(enabled = false)から、クラスまたはメソッドに適用できることがわかります。しかし、メソッドに適用された場合にのみ機能するようです。

誰かが同じことを見て、解決策を見つけましたか?

4

1 に答える 1

14

それは私のために働くようです:

@Test(enabled = false)
public class B {

    public void btest1() {
        System.out.println("B.btest1");
    }

}

結果:

===============================================
SingleSuite
Total tests run: 0, Failures: 0, Skips: 0
===============================================

falsetrueに変更:

B.btest1

===============================================
SingleSuite
Total tests run: 1, Failures: 0, Skips: 0
===============================================

考えられる理由

これがあなたをつまずかせる可能性があるものです(コードを提供していないため、わかりにくいです):

@Test(enabled = false)
public class B {

    @Test
    public void btest1() {
        System.out.println("B.btest1");
    }

}

@Testメソッドでアノテーションを繰り返すことにより、属性デフォルト値であるにオーバーライドするenabledことになるため、このケースではテストが実行されます。true

解決策はenabled=false、メソッド レベルで繰り返すことです。

@Test(enabled = false)
public class B {

    @Test(enabled = false)
    public void btest1() {
        System.out.println("B.btest1");
    }

}

少し直感に反することは承知していますが、メソッド注釈がクラス注釈をオーバーライドできる方法で一貫性を保つために必要です。

于 2012-05-03T17:04:27.613 に答える