使用mvn test -Dtest=具体方法名,结果报:No tests were executed!
执行命令:
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
文件中,您需要配置以下内容来支持测试的执行:
- 添加
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>
- 确保您的测试依赖项已经添加到
dependencies
标签内。例如,如果您使用 JUnit 进行单元测试,您需要添加以下依赖项:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
请根据您的具体需求和测试框架,添加适当的测试依赖项。
3.确保您的测试类和方法的命名和注解都正确无误,并且位于正确的包路径下。另外,请确保您的测试类和方法的代码逻辑正确,以便可以执行预期的测试。
4.尝试如下方法:
-
指定的测试方法不存在:请确保您在
-Dtest
参数中正确指定了存在的测试方法。根据您提供的代码,您的测试方法是print
,所以您可以尝试以下命令:mvn test -Dtest=UserMapperTests#print
或者
mvn test -Dtest=com.cy.store.mapper.UserMapperTests#print
请确保在命令中使用正确的类名和方法名,并确保命令在正确的项目目录下执行。
-
测试方法不符合测试框架的要求:请确保您的测试方法符合 JUnit 测试框架的要求。根据您提供的代码,您的测试方法使用了
@Test
注解,并且返回类型为void
,这是符合要求的。 -
测试类或方法的包路径不正确:请确保您的测试类和方法位于正确的包路径下。根据您提供的代码,
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>
搞定。