如果Test类与@DataProvider和@Factory不在同一个包中,则如何使用

时间:2020-09-24 17:04:43

标签: testng testng-dataprovider

我在 src / main / java 中有一个类,其中包含@Factory和@DataProvider批注

package com.qa.data

public class DemoFactoryAndDataProvider{

    
    @Factory(dataProvider="dataProvider")
    public Object[] setMyValue(String s){
        return new Object[]{new testDemoFactoryAndDataProvider(s)};
    }
 
    @DataProvider(name="dataProvider")
    public Object[][] dp() {
        return new Object[][] {
          new Object[] { "Test Data1"}
        };
      }
    }

我在 src / test / java 中有一个测试类,它将测试上面的类

package com.qa.tests

public class testDemoFactoryAndDataProvider {
    
    private String str;
    
    public testDemoFactoryAndDataProvider(String st){
        this.str = st;
    }
  
     @Test
      public void testMethod() {
          System.out.println("This is test method: " + str);
      }
}

我的问题是,如果两个类都生活在不同的源文件夹中,那么如何确保@DataProvider和@Factory批注正常工作?

我有return new Object[ ] { new testDemoFactoryAndDataProvider(s) }

的代码

错误并抛出错误,因为未导入类DemoFactoryAndDataProvider.java,但我不应该将包从“ src / 测试 / java”导入到“ src / main / java”(反之亦然)。

不同的示例和视频在同一源文件夹中显示了这两个类,但是在我的情况下,我希望@DataProvider和@Factory位于与@Test不同的源文件夹中。

我希望这是有道理的。

谢谢。

0 个答案:

没有答案