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类中实现测试数据加载程序
  • 需要在@test method中同时从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;}
    
    @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}
    };
    }