2011-09-23 69 views
0

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

+0

你为什么需要那个? – Bozho

+0

谢谢你的回答,问题出在模块间的依赖关系。我明白这是不可能的。 – user961245

回答

1

运行:

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

注意,如果您有模块间的依赖关系(我认为你这样做),你可能无法真正做到这一点,因为你会需要在可以在其他模块中运行测试之前构建依赖罐。

1

AFAIK在maven中是不可能的。你正试图改变maven中不允许的maven构建生命周期。但是有几个配置参数可以传递给maven,这会影响测试。

mvn install -Dmaven.test.skip 

这不会在所有

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

运行单元测试,这将导致Maven来未停止,并且继续即使有在测试阶段的故障模块的建设进程。 希望,这有助于

0

的问题是:

模块可能有在相互依存关系,以及解决这些依赖关系,你必须建立以模块,否则将无法编译。所以对你的问题没有一个合理的解决方案。

疯狂的解决方案会以某种方式聚合所有子项目的来源(和外部依赖项),并在该集团上运行compiletest,但这将是如此怪异的破解,我很高兴他们没有这样做。

相关问题