Java 我们能否确保在dataprovider之前调用@beforesuite?
我们可以按照以下方法初始化测试数据吗?我想实现两点Java 我们能否确保在dataprovider之前调用@beforesuite?,java,automated-tests,testng-dataprovider,test-data,Java,Automated Tests,Testng Dataprovider,Test Data,我们可以按照以下方法初始化测试数据吗?我想实现两点 需要从文件中初始化/加载测试数据一次,并在所有数据提供程序中使用相同的测试数据。考虑在@beforesuite类中实现测试数据加载程序 需要在@test method中同时从dataprovider获取数据和从testNG文件获取参数 @BeforeSuite @Parameters(value = { "test_data_file" }) public static synchronized void init(String test_da
@BeforeSuite
@Parameters(value = { "test_data_file" })
public static synchronized void init(String test_data_file) {
TestDataFactory.load(test_data_file);
}
@Test(dataProvider="dp_dummy",dataProviderClass = DP_1.class)
public void testDummyAPI(TestData test_data,ITestContext context){
String param = context.getCurrentXmlTest().getParameter("param");
}
@DataProvider(name = "dp_dummy")
public Object[][] getDataFromDataprovider(ITestContext context) {
List<TestData> test_data_collection = TestDataFactory.getTestData(targated_test_data);
Object[][] test_data_set = new Object[test_data_collection.size()][1];
for(TestData test_data : test_data_collection)
test_data_set[i++][0] = test_data;
return test_data_set;}
@BeforeSuite
@参数(值={“测试数据文件”})
公共静态同步void init(字符串测试数据文件){
加载(测试数据文件);
}
@测试(dataProvider=“dp_dummy”,dataProviderClass=dp_1.class)
public void testDummyAPI(TestData test_data,ITestContext上下文){
字符串param=context.getCurrentXmlTest().getParameter(“param”);
}
@数据提供程序(name=“dp\u dummy”)
公共对象[][]getDataFromDataprovider(ITestContext上下文){
List test\u data\u collection=TestDataFactory.getTestData(目标测试数据);
对象[][]测试数据集=新对象[test\u data\u collection.size()][1];
用于(测试数据测试数据:测试数据采集)
测试数据集[i++][0]=测试数据;
返回测试数据集}
假设您正确地创建了
测试数据集
,您就可以像这样实现第二点
@Test(dataProvider="dp_dummy",dataProviderClass = DP_1.class)
public void testDummyAPI( String p, Object[][] ob){
System.out.println(p);
System.out.println(ob[0][0]);
}
@DataProvider(name = "dp_dummy")
public Object[][] getDataFromDataprovider(ITestContext context) {
List<TestData> test_data_collection = TestDataFactory.getTestData(targated_test_data);
Object[][] test_data_set = new Object[test_data_collection.size()][1];
for(TestData test_data : test_data_collection)
test_data_set[i++][0] = test_data;
String param = context.getCurrentXmlTest().getParameter("param");
return new Object[][] {
{ param, test_data_set}
};
}
@Test(dataProvider=“dp_dummy”,dataProviderClass=dp_1.class)
public void testDummyAPI(字符串p,对象[][]ob){
系统输出println(p);
System.out.println(ob[0][0]);
}
@数据提供程序(name=“dp\u dummy”)
公共对象[][]getDataFromDataprovider(ITestContext上下文){
List test\u data\u collection=TestDataFactory.getTestData(目标测试数据);
对象[][]测试数据集=新对象[test\u data\u collection.size()][1];
用于(测试数据测试数据:测试数据采集)
测试数据集[i++][0]=测试数据;
字符串param=context.getCurrentXmlTest().getParameter(“param”);
返回新对象[][]{
{param,test_data_set}
};
}
假设您正确地创建了测试数据集
,您就可以像这样实现第二点
@Test(dataProvider="dp_dummy",dataProviderClass = DP_1.class)
public void testDummyAPI( String p, Object[][] ob){
System.out.println(p);
System.out.println(ob[0][0]);
}
@DataProvider(name = "dp_dummy")
public Object[][] getDataFromDataprovider(ITestContext context) {
List<TestData> test_data_collection = TestDataFactory.getTestData(targated_test_data);
Object[][] test_data_set = new Object[test_data_collection.size()][1];
for(TestData test_data : test_data_collection)
test_data_set[i++][0] = test_data;
String param = context.getCurrentXmlTest().getParameter("param");
return new Object[][] {
{ param, test_data_set}
};
}
@Test(dataProvider=“dp_dummy”,dataProviderClass=dp_1.class)
public void testDummyAPI(字符串p,对象[][]ob){
系统输出println(p);
System.out.println(ob[0][0]);
}
@数据提供程序(name=“dp\u dummy”)
公共对象[][]getDataFromDataprovider(ITestContext上下文){
List test\u data\u collection=TestDataFactory.getTestData(目标测试数据);
对象[][]测试数据集=新对象[test\u data\u collection.size()][1];
用于(测试数据测试数据:测试数据采集)
测试数据集[i++][0]=测试数据;
字符串param=context.getCurrentXmlTest().getParameter(“param”);
返回新对象[][]{
{param,test_data_set}
};
}