为什么Maven执行mvn test命令不运行测试文件且不生成测试报告?
Maven不执行测试文件解决方案
- 补充测试框架依赖
当前POM文件未引入JUnit、TestNG等单元测试框架依赖,Maven Surefire插件依赖框架注解识别测试逻辑,以JUnit 4为例,将以下配置添加到<dependencies>节点下:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency>
如果使用JUnit 5,可对应引入JUnit Jupiter相关依赖。
- 检查测试代码规范
- 测试类必须存放于
src/test/java目录下,符合Maven标准目录结构,不要放在src/main/java中 - 测试方法必须添加
@Test注解,且方法为public修饰、无返回值、无入参 - 测试类名需符合你配置的命名规则,即以
Test作为类名后缀
- 测试类必须存放于
- 升级Surefire插件版本
你当前使用的2.19版本过旧,兼容性较差,建议升级到3.x稳定版,修改插件版本配置即可:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.2.5</version> <configuration> <skipTests>false</skipTests> <includes> <include>**/*Test.java</include> </includes> </configuration> </plugin>
注:你原本的3条include规则有重复,仅保留**/*Test.java即可覆盖所有层级目录下后缀为Test的测试类。
- 指定运行单个测试文件的方法
如果需要运行指定测试文件,可直接在命令中指定类名:mvn test -Dtest=自定义测试类名
如果需要运行测试类中的单个方法,可使用如下格式:mvn test -Dtest=自定义测试类名#测试方法名
内容的提问来源于stack exchange,提问作者Don
相关产品推荐
相关产品推荐

