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

TestNg测试无法随Maven构建执行问题排查求助

排查Maven clean install 不自动执行TestNG测试的问题

我来帮你梳理下可能导致这个问题的几个常见原因,都是Maven和TestNG集成时容易踩的坑:

  • 测试类命名不符合Maven默认规则
    Maven的Surefire插件(负责执行测试的核心插件)默认只扫描符合特定命名模式的测试类:

    • 类名以Test开头或结尾(比如CreateUtilityTest、TestCreateUtility)
    • 类名以Tests结尾(比如CreateUtilityTests)
      你的测试类叫CreateUtilty(顺便提一句,这里拼写应该是CreateUtility吧?),完全不匹配上述规则,所以Surefire根本找不到这个测试类,自然不会执行。这大概率是最主要的原因!
  • 测试类所在目录不对
    Maven严格遵循目录规范,测试类必须放在src/test/java目录下,而不是src/main/java。如果你的CreateUtilty是放在main源码目录里的,Surefire不会去扫描这个目录的测试类。

  • TestNG注解引用错误
    检查你代码里的@Test注解是不是来自org.testng.annotations.Test,如果不小心用了JUnit的org.junit.Test注解,TestNG是不会识别这个测试方法的,自然也不会执行。

  • TestNG依赖范围配置错误
    确保你的TestNG依赖在pom.xml里的范围是test,这样Maven才会知道这是用于测试的依赖:

    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>7.8.0</version> <!-- 替换成你实际使用的版本 -->
        <scope>test</scope>
    </dependency>
    
  • Surefire插件版本过低或未显式配置
    虽然Maven会默认引入Surefire插件,但老版本的插件对TestNG的支持可能有问题。你可以尝试显式配置最新的Surefire插件版本,确保它能正确识别TestNG测试:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.2.5</version> <!-- 当前最新稳定版 -->
            </plugin>
        </plugins>
    </build>
    

另外,你代码里的Creationutiltiy.create("myApp")也存在拼写错误(应该是CreationUtility?),不过这个是代码逻辑问题,只会导致测试运行时报错,不会影响测试类被Surefire识别。

内容的提问来源于stack exchange,提问作者JITHIN_PATHROSE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:41:24