我正在使用TestNg 6.8.8,并且一直试图让每个实例执行测试,运气不佳。请有人帮我理解我哪里出错了。以下是我的代码。
<suite name="ExtendFactory" order-by-instances="true">
<test name="Factory" order-by-instances="true" preserve-order="false">
<classes>
<class name="com.test.SampleTest">
</class>
</classes>
</test>
</suite>
public class Sample {
@DataProvider(name = "test1")
public static Object[][] createData1() {
return new Object[][] {
{ "Google" },
{ "Microsoft"},
};
}
@DataProvider(name = "test2")
public static Object[][] createData2() {
return new Object[][] {
{ "Apple"},
{ "Yahoo"},
};
}
}
public class SampleTest {
@Test(dataProvider = "test1",dataProviderClass = Sample.class)
public void verifyData1(String n1) {
System.out.println(n1);
}
@Test(dataProvider = "test2", dependsOnMethods="verifyData1",dataProviderClass = Sample.class)
public void verifyData2(String n1) {
System.out.println(n1);
}
我希望结果按此顺序排列:谷歌,苹果,微软,雅虎或苹果,雅虎,谷歌,微软, 但我得到谷歌,微软,苹果,雅虎。
答案 0 :(得分:0)
在上述情况下,您实际上没有实施工厂。您必须使用@Factory注释创建一个类,然后工厂类将调用您的测试类。对于所有这些情况,逐个实例都是有效的。有关更多参考,请参阅testng文档http://testng.org/doc/documentation-main.html#factories