TestNG:Eclipse插件中的测试名称

TestNG:Eclipse插件中的测试名称,eclipse,testng,Eclipse,Testng,假设我有这样一个简单的测试: public class SimpleTestFactory { private int instanceNumber; @Factory(dataProvider="provideTestData") public SimpleTestFactory(int instanceNumber) { this.instanceNumber = instanceNumber; } @DataProvider

假设我有这样一个简单的测试:

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()
下“分组在一起”。此外,假设
testOne()
中有一个if块使实例2失败。然后,在“所有测试”选项卡中,它可能会显示(取决于实例1或实例2是第一个)通过堆栈跟踪的测试或没有堆栈跟踪的测试失败,就好像一个实例的结果正在覆盖另一个实例一样


我如何才能得到它,使这两个实例分别显示?也就是说,我得到了类似于
SimpleTestFactory[1]
->
testOne()
SimpleTestFactory[2]
->
testOne()
?如果我添加第二个测试,
testTwo()

让您的测试实现
org.testng.ITest
,并重写
getName()
以返回实例的名称。假设我这样做,
getName()
字符串的形式返回
instanceNumber
。假设我还有第二个测试方法,
testTwo()
。如果我在Eclipse中运行它,我看到的只是
instanceNumber
,而没有任何对
testOne()
testTwo()
的引用。因此,现在我遇到了相反的问题,即知道哪个实例的测试失败了,但不知道哪个测试失败了;我在这里指的是
getTestName()