在多模块 Maven 项目中构建所有模块后如何运行集成测试?

Ben*_*ole 6 testing maven maven-surefire-plugin maven-failsafe-plugin

我正在处理一个大型的多模块 Maven 项目。每个模块都有快速的单元测试(使用 Surefire 插件),许多模块的集成测试速度很慢(使用 Failsafe 插件)。

我想通过在所有模块构建和单元测试后运行所有模块的集成测试来加快对“简单”构建失败(编译错误和单元测试失败)的反馈。

你能提出一个实现这一目标的好方法吗?

Ben*_*ole 0

这是一个完全符合我想要的解决方案:使用 Failsafe 插件仅运行集成测试,而无需将测试移出其自然位置或重新编译以运行测试。

mvn install -DskipITs
mvn failsafe:integration-test
Run Code Online (Sandbox Code Playgroud)

我们让 Maven 将项目的工件发布到本地目录中。然后我们可以将其用作第二步的存储库。在第二步中,我们准确地调用我们需要的目标,它从本地存储库中获取工件。

mvn surefire:test如果您需要单独运行单元测试,则同样的事情也适用于 Surefire ( )。

我必须承认我并不完全理解 Maven 模型以及它为何有效。互联网似乎一致认为这种事情无法完成(请参阅此处的其他答案),但这绝对对我有用。