我希望发生以下情况:
mvn clean install
时,我想单独运行单元测试(没有集成测试)mvn integration test
时,我想单独进行集成测试(没有单元测试)mvn test
单独测试应该运行。我用Maven Surefire
插件和Maven failsafe
插件尝试了一些东西但是无法实现这一点。我试过的是:添加了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
将只运行单元测试,没有集成测试导致它在生命周期的早期。