You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 09:52:28