Maven故障安全不执行测试
我已经梳理了StackOverflow和许多其他网站,找到了许多其他相关的post,并且已经遵循了所有的建议,但最终, 故障安全正在跳过我的测试。
我的JUnit测试位于: myModule/src/main/test/java/ClientAccessIT.java
我正在跳过万无一失,因为这个模块中没有unit testing:
org.apache.maven.plugins maven-surefire-plugin true
我正在尝试使用failsafe运行集成测试:
org.apache.maven.plugins maven-failsafe-plugin run-tests integration-test integration-test verify
但是,当我运行mvn verify
我看到了这个:
[INFO] --- maven-failsafe-plugin:2.14.1:integration-test (run-tests) @ rest-services-test --- ------------------------------------------------------- TESTS ------------------------------------------------------- Results : Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
我花了最后4个半小时的精练,任何帮助将不胜感激。 唯一可能值得一提的是我有Cargo设置并拆除Tomcat容器。 有没有人看到明显的问题?
d
您需要重命名测试类。
默认情况下,您可以在文档中找到插件查找的名称,如@acdcjunior所述:
默认情况下,Failsafe插件将自动包含具有以下通配符模式的所有测试类:
- “
**/IT*.java
” – 包括其所有子目录和所有以“IT”开头的java文件名。- “
**/*IT.java
” – 包括其所有子目录和所有以“IT”结尾的java文件名。- “
**/*ITCase.java
” – 包括其所有子目录和所有以“ITCase”结尾的java文件名。
我有类似的问题。 如果没有任何测试类编译到目标/测试类,那么检查你的pom文件并确保包装不是’pom’。
对于多模块项目,子项目需要声明如下的插件,
org.apache.maven.plugins maven-failsafe-plugin
版本inheritance自父pom。 如果没有上面定义的,单独使用父pom中的插件将无法正常工作。
您的测试不在默认测试源目录src / test / java中。 看到:
https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
Mymodule中/ SRC /主/测试/ JAVA / ClientAccessIT.java
应该:
Mymodule中/ SRC /测试/ JAVA / ClientAccessIT.java
您还可以更新您的pom文件(如果您确实希望测试生活在main中)以包括:
src/main/test
我也有类似的问题,但需要包装元素是“pom”。 确保使用maven-compiler-plugin编译测试源文件并将其添加到… / target / test-classes文件夹:
org.apache.maven.plugins maven-compiler-plugin ${maven.compiler.version} test-compile testCompile
我遇到了同样的问题,并尝试了一些建议的选项。 我正在使用JUnit 5开发一个Spring Boot应用程序。不幸的是,无论插件的广告如何,我的集成测试(位于src/test/java
和后缀为*TestIT.java
)都没有被提取。 我尝试降级到2.18.1,2.1.1.1并尝试删除
和
部分以尝试使用插件的默认function,但没有运气。
我终于将版本更改为最新版(截至撰写本文时)为2.22.0和中提琴。 这是我添加到我的pom的
部分的配置。 更好的是,我不需要添加定义integration-test
执行,并verify
大多数人所包含的目标; failsafe默认执行这些操作。 我也包括了我的surefire插件配置,因为我在maven生命周期的test
阶段使用它来执行unit testing。
org.apache.maven.plugins maven-surefire-plugin 2.22.0 org.apache.maven.plugins maven-failsafe-plugin 2.22.0
为了好的衡量,告诉surefire和使用JUnit 5的失败,我将其包含在我的
部分中:
org.junit.jupiter junit-jupiter-engine test
Eclipse在版本标记下显示警告(黄色波浪形下划线),因此包含错误。 我确信有更好的方法可以解决这个问题,但在这种情况下它适用于我。
为了加快测试此配置,并避免在test
, integration-test
或verify
阶段之前完成所有早期生命周期阶段,我使用以下命令快速validation:
-
mvn failsafe:integration-test
(仅运行集成测试) -
mvn surefire:test
(仅运行unit testing) - (显然我会在整个生命周期中运行)
希望这有助于某人。 干杯!
我有点类似的问题。 我的集成测试没有被提取。 我的项目是一个多模块弹簧启动项目。 我的错误是我在父POM中添加了maven-failsafe-plugin。 在摆弄了许多选项后,我将failsafe-plugin放在模块pom中,我的所有集成测试都存在,这解决了我的问题。