0

次のような簡単なテストがあるとします。

public class SimpleTestFactory {
    private int instanceNumber;

    @Factory(dataProvider="provideTestData")
    public SimpleTestFactory(int instanceNumber) {
        this.instanceNumber = instanceNumber;
    }

    @DataProvider
    public static Object[][] provideTestData() { return new Object[][] {{1},{2}}; }

    @Test
    public void testOne() { System.out.printf("Test 1, Instance %d%n", instanceNumber); }
}

これをEclipseで実行すると、[すべてのテスト]タブに2つではなく、1つのエントリしか表示されません。SimpleTestFactory両方のテストインスタンスは、 ->の下で「グループ化」されtestOne()ます。さらに、インスタンス2に失敗したif-blockがtestOne()あるとします。次に、[すべてのテスト]タブの結果に、スタックトレースで合格したテストが表示される場合があります(インスタンス1またはインスタンス2のどちらが最初かによって異なります)。または、あるインスタンスの結果が別のインスタンスを上書きしているかのように、スタックトレースなしでテストが失敗します。

2つのインスタンスが別々に表示されるようにするにはどうすればよいですか?つまり、SimpleTestFactory[1]->testOne()SimpleTestFactory[2]->のようなものが得られtestOne()ますか?2番目のテストを追加するとどうなりtestTwo()ますか?

4

1 に答える 1

0

テストを実装org.testng.ITestしてオーバーライドgetName()し、インスタンスの名前を返すようにします。

于 2012-07-27T06:47:55.980 に答える