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在版本标记下显示警告(黄色波浪形下划线),因此包含错误。 我确信有更好的方法可以解决这个问题,但在这种情况下它适用于我。

为了加快测试此配置,并避免在testintegration-testverify阶段之前完成所有早期生命周期阶段,我使用以下命令快速validation:

  • mvn failsafe:integration-test (仅运行集成测试)
  • mvn surefire:test (仅运行unit testing)
  • (显然我会在整个生命周期中运行)

希望这有助于某人。 干杯!

我有点类似的问题。 我的集成测试没有被提取。 我的项目是一个多模块弹簧启动项目。 我的错误是我在父POM中添加了maven-failsafe-plugin。 在摆弄了许多选项后,我将failsafe-plugin放在模块pom中,我的所有集成测试都存在,这解决了我的问题。