TestNG多类测试仅运行首用例且执行顺序异常求助
解决TestNG多类测试用例执行顺序异常问题
核心修复方案:恢复类优先的执行顺序
TestNG默认会跨类按优先级执行用例,要回到先执行完一个类的所有用例再处理下一个类的逻辑,只需在testng.xml的<test>标签中添加preserve-order="true"配置:
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" > <suite name="Your Test Suite"> <!-- 开启preserve-order确保按类定义顺序执行 --> <test name="Your Test Case" preserve-order="true"> <classes> <class name="com.yourpackage.Class1"/> <class name="com.yourpackage.Class2"/> </classes> </test> </suite>
添加后,TestNG会严格按照xml中<class>标签的先后顺序执行,每个类内部的用例会遵循自身的priority或定义顺序执行,不再跨类统一按优先级排序。
额外排查点
- 检查IntelliJ运行配置:打开TestNG的运行配置,确保没有勾选"Run tests in parallel"(并行执行会打乱顺序),且执行顺序选项设置为"Preserve order"。
- 排查代码中的自定义执行逻辑:确认项目中没有实现
IAnnotationTransformer、IMethodInterceptor等自定义执行顺序的接口,也没有过度使用dependsOnMethods/dependsOnGroups,这些都会覆盖默认的执行顺序规则。 - 恢复控制台缺失的日志:当
preserve-order恢复后,控制台的正则匹配未找到测试列表日志通常会自动恢复。如果仍不显示,可在IntelliJ的日志设置中,将TestNG的日志级别调整为INFO及以上。
内容的提问来源于stack exchange,提问作者Falfo Lopez
相关产品推荐
相关产品推荐

