我面临以下问题:我创建了两个类,其中包括具有优先级属性的@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?
答案 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>