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

问题描述 投票:2回答:1

我希望发生以下情况:

  • 当我运行mvn clean install时,我想单独运行单元测试(没有集成测试)
  • 当我做mvn integration test时,我想单独进行集成测试(没有单元测试)
  • 当我做mvn test单独测试应该运行。

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

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

maven integration-testing maven-failsafe-plugin
1个回答
1
投票

你有这个问题,你不明白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将只运行单元测试,没有集成测试导致它在生命周期的早期。

© www.soinside.com 2019 - 2024. All rights reserved.