TestNG测试用例无法通过Maven执行的问题求助
解决TestNG测试用例未执行的问题
我帮你梳理下问题根源,主要有几个关键点导致TestNG测试没被触发执行,咱们逐个解决:
1. 修正TestNG依赖的Scope配置
你的pom.xml里TestNG的<scope>设置为compile,这是错误的——测试依赖只需要在测试阶段生效,应该改成test。否则Maven不会将其识别为测试依赖,会影响Surefire插件调用测试用例。
修改后的依赖代码:
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.0.0</version> <scope>test</scope> <!-- 改为test scope --> </dependency>
2. 匹配Maven测试类命名规范(或自定义插件配置)
Maven的maven-surefire-plugin默认只会识别符合以下规则的测试类:
- 类名以
Test开头(比如TestMavenDemo.java) - 类名以
Test结尾(比如MavenDemoTest.java)
你的测试类名为mavenTestDemo,不符合上述规则,所以插件找不到要执行的测试。有两种解决方式:
方法A:修改测试类名
直接把类名改成MavenDemoTest或者TestMavenDemo,无需额外配置就能被插件识别。
方法B:配置Surefire插件指定测试类
如果不想修改类名,可以在pom.xml中添加插件配置,明确指定要执行的测试类:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> <!-- 建议更新到兼容TestNG7的版本 --> <configuration> <includes> <include>**/mavenTestDemo.java</include> <!-- 指定你的测试类路径 --> </includes> </configuration> </plugin> </plugins> </build>
3. 更新Surefire插件版本
你当前使用的Surefire插件版本是2.12.4,这个版本比较老旧,和TestNG 7.0.0存在兼容性问题。建议更新到2.22.2或更高版本(比如最新的3.x系列),确保插件能正确识别并执行TestNG测试。
验证效果
修改完成后,重新执行mvn clean test或mvn clean install,你就能看到TestNG测试用例执行的日志,包括你打印的Addintion、Subtraction等输出,以及测试结果的统计信息。
内容的提问来源于stack exchange,提问作者Shilpa Khandge
相关产品推荐
相关产品推荐

