如何在并行执行时先在一个类中运行多个方法,然后再在另一个类中运行方法

时间:2019-02-11 09:07:06

标签: testng testng-eclipse testng.xml

我面临以下问题:我创建了两个类,其中包括具有优先级属性的@Tests:

@Test( priority = 1 )
public void testA1() {
    System.out.println("testA1");
}

@Test( priority = 2 )
public void testA2() {
    System.out.println("testA2");
}

@Test( priority = 3 )
public void testA3() {
    System.out.println("testA3");
}

...和...

@Test( priority = 1 )
public void testB1() {
    System.out.println("testB1");
}

@Test( priority = 2 )
public void testB2() {
    System.out.println("testB2");
}

@Test( priority = 3 )
public void testB3() {
    System.out.println("testB3");
}

我在testng.xml中将两个类都放在一个测试中,但是当我运行测试时,它将根据两个类的优先级对我的@Tests进行排序:

testA1 测试B1 testA2 testB2 testA3 testB3 我期望得到以下结果:

testA1 testA2 testA3 测试B1 testB2 testB3 我的问题是,如何防止基于两个类对@Tests进行排序,而只能同时从一个类运行@Tests?

3 个答案:

答案 0 :(得分:0)

您可以将ClassExample1中的方法放在一个组上,然后使用dependsOnGroup,例如:

public class classExample1 {
@Test(groups = GROUP_EXAMPLE)
public void testEx1() {
     System.out.println("testEx1");
}
}

public class classExample2 {
@Test
public void testEx2(dependsOnGroups = GROUP_EXAMPLE) {
     System.out.println("testEx2");
}
}

这样,testEx1将始终在testEx2之前执行。 而且,您可以使用优先级来进一步细化结果。

答案 1 :(得分:0)

您可以使用xml文件运行多个测试类(可以通过右键单击项目来创建xml文件)

https://howtodoinjava.com/testng/testng-executing-parallel-tests/此链接将帮助您解决此问题

答案 2 :(得分:0)

要首先运行一个类的所有测试方法,然后再运行其他类,则需要更改testng.xml文件结构。您需要按照执行顺序从每个类中指定测试方法。

在不进行此更改的情况下,XML文件将按照优先级运行,例如testA1(),然后testB1()

请找到实现类明智测试所需的XML文件:

<suite name="REGRESSION_TEST_SET" thread-count="1" parallel="tests" >
<test  name="AUTOMATION" group-by-instances="true">
 <classes>
        <class name="ClassA" />
          <methods>
                <include name="testA1"/>
                <include name="testA2"/>
                <include name="testA3"/>
          </methods>
       </class>  
        
        <class name="ClassB" />
          <methods>
                <include name="testB1"/>
                <include name="testB2"/>
                <include name="testB3"/>
          </methods>
       </class>  
    </classes>
</test>