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()
。