TestNG依赖来自不同类的OnMethods

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

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

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

将该方法放在一个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 } } 

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

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

DependsOnMethods不能用于不同的类,要解决这个问题,我们可以使用dependsOnGroups;

代码改变了;

1. dependsOnGroups类;

@Test(groups = {“prerequisites”})

 public void M1() { } 

2.调用dependsOnGroups的类;

 @Test(dependsOnGroups={"prerequisites"}) public void M2() { } 

3. xml

      

您可以在TestNG @Test注释中使用groupsdependsOnGroups ,如前面的答案中所述。

但是,这两个类都需要在同一个

          

运行测试套件时,以下内容将导致exception。