maven - 运行 mvn clean install 时不要运行集成测试

标签 maven integration-testing maven-failsafe-plugin

我希望发生以下情况:

  • 当我运行 mvn clean install 时,我希望单独运行单元测试(无集成测试)
  • 当我执行 mvn 集成测试 时,我希望单独运行集成测试(无单元测试)
  • 当我执行 mvn test 时,应该单独运行单元测试。

我尝试了一些 Maven Surefire 插件和 Mavenfailsafe 插件,但无法 实现这一目标。我尝试过的是:添加了Surefire和Failsafe插件,尝试用注释分离单元测试,以及在包级别分离单元和集成测试,并保留单元和集成测试的特定命名约定。

我能够实现的是在mvn clean install上单独运行单元测试,但是当我运行Maven集成测试时,我无法停止单元测试的运行。知道我应该怎么做吗?

最佳答案

您遇到的问题是您不理解 Maven life-cycle它有以下几个阶段(仅摘录):

   clean
   ...
   compile
   ...
   test
   ..
   pre-integration-test
   integration-test
   post-integration-test
   ..
   install

换句话说,这意味着默认情况(约定)无法满足您在不运行集成测试的情况下执行mvn clean install的要求。

我建议创建一个配置文件,将 maven-failsafe-plugin 放入其中,以便您可以控制集成测试是否运行。这会导致这样的事情:

mvn -Prun-its install

要运行集成测试,您可以使用以下命令:

mvn verify

其中将包括运行单元测试,但这可以通过使用来抑制:

mvn -DskipTests=true verify

使用mvn test将仅运行单元测试,不会运行集成测试,因为它处于生命周期的早期。

关于maven - 运行 mvn clean install 时不要运行集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17424868/

相关文章:

unit-testing - 测试 - 命名法

html - Jenkins 中的故障安全 html 报告

java - sh - 使用 shell 脚本在 maven 项目中运行一个类文件

asp.net-core - Integrationtest IHost TestServer不会关闭

grails - Grails mock 失败

java - maven插件执行顺序

java - 为什么 "mvn verify"不运行我的集成测试?

java - Maven 初学者问题 - 虽然项目设置有些复杂

maven - izpack install jar 仅适用于以 "izpack"开头的文件夹

Maven 项目不适用于 Tomcat 7