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 中运行它时,我在“所有测试”选项卡中只得到一个条目而不是两个条目;SimpleTestFactory两个测试实例都在->下“组合在一起” testOne()。此外,假设有一个 if-blocktestOne()实例 2 失败。然后,“所有测试”选项卡中的结果可能会显示(取决于实例 1 还是实例 2 是第一个)通过堆栈跟踪的测试或者没有堆栈跟踪的测试失败,就好像一个实例的结果正在覆盖另一个实例。

我怎样才能得到它,以便两个实例分别显示?也就是说,我得到类似SimpleTestFactory[1]->testOne()SimpleTestFactory[2]->的东西testOne()?如果我添加第二个测试testTwo()怎么办?

4

1 回答 1

0

让您的测试实现org.testng.ITest并覆盖getName()以返回实例的名称。

于 2012-07-27T06:47:55.980 回答