我希望发生以下情况:
- 当我运行
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/