0

我有一个多模块 Maven 项目。在每个模块中都有单元测试。当我在每个模块之前运行全新安装测试时,如果一个模块中的所有测试都成功,则它会成功构建。如果一个测试失败,该模块中的所有其他测试都成功运行(或者一些成功运行,另一些失败)。放置第一个失败单元测试的模块构建失败。跳过其他模块。我想要这样的事情:首先在所有模块中运行所有单元测试,然后如果没有失败的测试构建所有模块,或者如果一个或模式模块中有一个或多个失败的测试跳过所有模块的构建。你能帮我吗?

4

3 回答 3

1

AFAIK 在 Maven 中是不可能的。您正在尝试更改 Maven 中不允许的 Maven 构建生命周期。但是,您可以将几个配置参数传递给 maven,这将影响测试。

mvn install -Dmaven.test.skip

这根本不会运行单元测试

mvn install -Dmaven.test.failure.ignore=true 

即使在测试阶段出现故障,这也会导致 maven 不会停止并继续进行模块构建过程。希望这可以帮助

于 2011-09-23T13:40:36.047 回答
1

跑:

mvn clean test
mvn install -Dmaven.test.skip=true

请注意,如果您具有模块间依赖关系(我假设您这样做),您可能无法真正做到这一点,因为您需要先构建依赖的 jar,然后才能在另一个模块中运行测试。

于 2011-09-23T13:40:37.683 回答
0

问题是:

这些模块可能相互依赖,并且要解决这些依赖关系,您必须按顺序构建模块,否则它们将无法编译。因此,您的问题没有明智的解决方案。

疯狂的解决方案会以某种方式聚合来自所有子项目的源(和外部依赖项)compiletest在该企业集团上运行,但这将是一个如此可怕的黑客行为,我很高兴他们没有这样做。

于 2011-09-23T13:40:48.657 回答