TestNG依赖来自不同类的OnMethods

bra*_*yne 26 java testing junit testng automated-tests

当要依赖的测试与具有此注释的测试的类相同时,注释的dependsOnMethods属性@Test可以正常工作.但是,如果待测试方法和依赖方法属于不同的类,则它不起作用.示例如下:

class c1 {
  @Test
  public void verifyConfig() {
    //verify some test config parameters
  }
}

class c2 {
  @Test(dependsOnMethods={"c1.verifyConfig"})
  public void dotest() {
    //Actual test
  }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个限制?一个简单的方法是在class c2该调用中创建一个测试c1.verifyConfig().但这将是太多的重复.

Ced*_*ust 32

将该方法放入group并使用dependsOnGroups.

class c1 {
  @Test(groups={"c1.verifyConfig"})
  public void verifyConfig() {
    //verify some test config parameters
  }
}

class c2 {
  @Test(dependsOnGroups={"c1.verifyConfig"})
  public void dotest() {
    //Actual test
  }
}
Run Code Online (Sandbox Code Playgroud)

建议在@Before*中验证配置,如果出现问题则抛出,这样测试就不会运行.这样,测试可以专注于测试.

class c2 {
  @BeforeClass
  public static void verifyConfig() {
    //verify some test config parameters
    //Usually just throw exceptions
    //Assert statements will work
  }

  @Test
  public void dotest() {
    //Actual test
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 当通过testing.xml文件运行它来运行类文件时,这可以正常工作获取错误DependencyMap :: Method"LoanApprovalTest.testLoanApprova(java.util.Hashtable)[pri:0,instance:com.zions.release1.Sanity .LoanTestCases.LoanApprovalTest @ 3884b2]"取决于不存在的组"CreateLoanAccountTest.testCreateLoanAccount" (8认同)