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

如何从命令行执行Maven项目?执行mvn test无测试用例运行

解决mvn test提示"No tests to run"的问题

我来帮你排查下为什么执行mvn test时找不到测试类,咱们一步步来解决:

核心问题分析

从你的描述和POM文件来看,主要有几个配置错误和不符合Maven规范的地方,导致Maven无法识别你的测试脚本:

1. 目录结构与Maven约定不匹配,且命令执行路径错误

  • Maven默认的测试源码目录是src/test/java,你的测试放在src/testScripts,需要正确配置路径,但你当前的POM里把sourceDirectory(主源码目录)指向了测试脚本目录,这会混淆主代码和测试代码的位置。
  • 你提到在/Copy of naukri/src/testScripts/目录下执行mvn test,这是错误的——Maven必须在POM文件所在的项目根目录执行命令,否则无法正确识别项目结构。

2. Maven Compiler插件配置错误

你把testSourceDirectory和suiteXmlFiles放在了maven-compiler-plugin的配置里,这些配置应该属于负责执行测试的maven-surefire-plugin,或者<build>根节点下,而不是编译插件。

3. TestNG依赖的错误排除

你的TestNG依赖里排除了自身,这会导致TestNG库无法被正常引入,测试框架根本无法工作:

<exclusions>
  <exclusion>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
  </exclusion>
</exclusions>

4. Java版本不一致

POM里properties指定的Java版本是1.8,但maven-compiler-plugin里的source和target是1.6,版本不统一会导致编译或运行时出现兼容性问题。


修复步骤与修正后的POM

第一步:调整项目目录结构(可选但推荐)

虽然可以自定义路径,但遵循Maven约定能减少配置麻烦,建议把测试类移到src/test/java/testScripts/NewTest.java;如果不想移动,就按下面的POM配置自定义路径。

第二步:修正POM文件

以下是修复后的完整POM,我标注了关键修改点:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>naukri</groupId>
<artifactId>NewTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>NaukriUpdate</name>
<description>----------------</description>

<properties>
    <!-- 统一Java版本为1.8 -->
    <java.version>1.8</java.version>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
</properties>

<build>
    <!-- 主源码目录(如果你的主代码在别的地方,这里改成对应路径,比如src/main/java) -->
    <sourceDirectory>src/main/java</sourceDirectory>
    <!-- 自定义测试源码目录 -->
    <testSourceDirectory>src/testScripts</testSourceDirectory>
    
    <plugins>
        <!-- 编译插件:只负责编译配置,升级到兼容Java8的版本 -->
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
        
        <!-- Surefire插件:负责执行TestNG测试,升级到稳定版本 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.2</version>
            <configuration>
                <systemPropertyVariables>
                    <propertyName>firefox</propertyName>
                </systemPropertyVariables>
                <!-- 指定TestNG的suite文件,确保该文件在项目根目录,或者写正确的相对路径 -->
                <suiteXmlFiles>
                    <suiteXmlFile>testng.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.5.3</version>
    </dependency>
    <!-- 修复TestNG依赖:移除错误的自身排除,添加test作用域 -->
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.10</version>
        <scope>test</scope>
    </dependency>
</dependencies>
</project>

第三步:正确执行命令

  1. 切换到POM文件所在的项目根目录(也就是/Copy of naukri/目录)打开终端
  2. 执行命令:mvn clean test(先clean清理之前的构建残留,再执行测试)

额外检查点

  • 确认你的NewTest.java类上添加了TestNG的@Test注解,否则TestNG不会识别它为测试类:
    import org.testng.annotations.Test;
    
    public class NewTest {
        @Test
        public void myTest() {
            // 你的测试代码逻辑
        }
    }
    
  • 确认testng.xml文件存在且配置正确,比如指定了正确的测试类路径:
    <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
    <suite name="TestSuite">
        <test name="MyTest">
            <classes>
                <class name="testScripts.NewTest"/>
            </classes>
        </test>
    </suite>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:36:31