使用mvn test -Dtest=具体方法名,结果报:No tests were executed!

发布时间 2023-07-19 15:56:19作者: 年华似水゛

执行命令:

mvnw.cmd test -Dtest=com.cy.store.mapper.UserMapperTests#print

问题描述:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project store: No tests were executed!  (Set -DfailIfNoTests=false to ignore this error.) -> [Help 1]

原因分析:

1.报错提示没有tests被执行。

 

操作如下:

在 Maven 的 pom.xml 文件中,您需要配置以下内容来支持测试的执行:

  1. 添加 maven-surefire-plugin 插件:这个插件用于执行测试。确保以下代码片段存在于 plugins 标签内:
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>3.0.0-M5</version>
    </plugin>
  </plugins>
</build>
  1. 确保您的测试依赖项已经添加到 dependencies 标签内。例如,如果您使用 JUnit 进行单元测试,您需要添加以下依赖项:
<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
  </dependency>
</dependencies>

请根据您的具体需求和测试框架,添加适当的测试依赖项。

 

3.确保您的测试类和方法的命名和注解都正确无误,并且位于正确的包路径下。另外,请确保您的测试类和方法的代码逻辑正确,以便可以执行预期的测试。

4.尝试如下方法:

  1. 指定的测试方法不存在:请确保您在 -Dtest 参数中正确指定了存在的测试方法。根据您提供的代码,您的测试方法是 print,所以您可以尝试以下命令:

    mvn test -Dtest=UserMapperTests#print

    或者

    mvn test -Dtest=com.cy.store.mapper.UserMapperTests#print

    请确保在命令中使用正确的类名和方法名,并确保命令在正确的项目目录下执行。

  2. 测试方法不符合测试框架的要求:请确保您的测试方法符合 JUnit 测试框架的要求。根据您提供的代码,您的测试方法使用了 @Test 注解,并且返回类型为 void,这是符合要求的。

  3. 测试类或方法的包路径不正确:请确保您的测试类和方法位于正确的包路径下。根据您提供的代码,UserMapperTests 类应该位于 com.cy.store.mapper 包下。

最后,我把版本降了,就ok了;

原版本;

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.22.2</version>
    </plugin>
  </plugins>
</build>

改为

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.19.1</version>
    </plugin>
  </plugins>
</build>

搞定。