1

我面临以下问题:我创建了两个类,其中包括具有优先级属性的@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 testB1 testA2 testB2 testA3 testB3 我期待以下结果:

testA1 testA2 testA3 testB1 testB2 testB3 我的问题是,我怎样才能防止我的@Tests 基于两个类排序并同时只从一个类运行@Tests?

4

3 回答 3

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 之前执行。您可以使用优先级来进一步细化您的结果。

于 2019-03-22T09:16:53.320 回答
0

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

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

于 2020-06-19T08:38:55.257 回答
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>
于 2020-07-18T13:45:28.627 回答