假设我有一个包含2个模块和3个pom.xml文件的项目(1个用于模块A,1个用于模块B,1个父pom.xml)
我添加了以下插件来验证我的变更集和另一个分支之间的代码覆盖率差异,如果它低于某个阈值则失败https://github.com/SurpSG/diff-coverage-maven-plugin
如果我不更改代码:
mvn clean verify
->;成功
mvn clean verify -T 1C -pl moduleA -am -U
->;成功
mvn clean verify -T 1C -pl moduleA, moduleB -am -U
->;成功
因此,正如预期的那样,我的构建通过了,因为我没有进行代码更改.
现在,如果我在没有适当的单元测试代码覆盖率的情况下对模块A进行代码更改,结果如下所示.
mvn clean verify -T 1C -pl moduleA -am -U
->;模块B失败,跳过模块A
mvn clean verify -T 1C -pl moduleB -am -U
->;成功
mvn clean verify -T 1C -pl moduleA, moduleB -am -U
->;模块B失败,跳过模块A
最后一种情况让我感到困惑,为什么模块B会失败?为什么它不是 for each 模块运行而没有副作用?
问题是,失败消息确实没有帮助,而且指向了错误的服务.