TestNG如何实现测试并行执行、类串行执行?
解决TestNG测试类串行执行的问题
针对你的需求,有两个直接可行的方案:
方案一:给<test>标签添加preserve-order="true"属性
TestNG默认不保证单个<test>内部类的执行顺序,即使你在xml里按顺序写了类,它也可能乱序执行。在<test>标签里加上preserve-order="true",就能强制让类按照配置文件里的定义顺序串行执行——先跑完第一个类的所有@Test方法,再执行下一个类。
修改后的testng.xml配置如下:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="MyTestSuite" parallel="tests" thread-count="2"> <test name="Test1" preserve-order="true"> <classes> <class name="com.example.FBOneClass" /> <class name="com.example.FBTwoClass" /> </classes> </test> <test name="Test2" preserve-order="true"> <classes> <class name="com.example.GOneClass" /> <class name="com.example.GTwoClass" /> </classes> </test> </suite>
方案二:使用TestNG分组与依赖分组
如果不想修改xml配置,可以通过代码层面的分组依赖实现:
- 给
FBOneClass的所有@Test方法添加统一分组:
@Test(groups = "fb_group_1") public void testMethod1() { // 测试逻辑 }
- 给
FBTwoClass的所有@Test方法添加分组依赖,依赖整个fb_group_1:
@Test(dependsOnGroups = "fb_group_1") public void testMethodA() { // 测试逻辑 }
这样FBTwoClass的所有方法会在FBOneClass的所有方法执行完成后才开始运行,不用单独依赖某个具体方法。
内容的提问来源于stack exchange,提问作者Azhagusundaram Tamil
相关产品推荐
相关产品推荐

