gpt4 book ai didi

java - 我们可以确保 @beforesuite 在 dataprovider 之前被调用吗?

转载 作者:太空宇宙 更新时间:2023-11-04 09:24:07 25 4
gpt4 key购买 nike

我们可以按照下面的方法来初始化测试数据吗?我想实现两点。

  1. 需要从文件中初始化/加载测试数据一次,并在所有数据提供者中使用相同的测试数据。考虑在@beforesuite类中实现测试数据加载器。
  2. 在 @test 方法中同时需要来自 dataprovider 的数据和来自 testNG 文件的参数。

    @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;}

最佳答案

假设您正确创建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}
};
}

关于java - 我们可以确保 @beforesuite 在 dataprovider 之前被调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57945525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com