1

在我的 Maven 构建中,我使用 Cobertura 来检查是否存在一定的最小覆盖范围:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <version>2.5.2</version>
    <configuration>
        <check>
            <branchRate>100</branchRate>
        </check>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>cobertura</goal>
                <goal>check</goal>
            </goals>
        </execution>
    </executions>
</plugin>

运行时mvn install,这工作正常。但是,在 Travis CI 中,构建失败是因为 Travis首先运行 mvn install -DskipTests=true以获取依赖项。显然,当测试被跳过时,没有覆盖,因此整个构建失败:

[ERROR] ch.trick17.betterchecks.fluent.StringCheck failed check. Branch coverage rate of 0.0% is below 100.0%
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
...
[ERROR] Failed to execute goal org.codehaus.mojo:cobertura-maven-plugin:2.5.2:check (default) on project better-checks-core: Coverage check failed. See messages above. -> [Help 1]

我可以以某种方式配置 Cobertura 以跳过检查是否跳过测试?或者还有其他解决方案,也许是在特拉维斯方面?


这是我的.travis.yml文件:

language: java

jdk:
  - openjdk6
  - openjdk7
  - oraclejdk7
  - oraclejdk8

script: "mvn install"
4

2 回答 2

0

作为 kmarbaise 的答案的替代方案,您可以替换自定义它以跳过 Cobertura 检查,而不是完全关闭安装步骤:

install: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -Dcobertura.skip=true -B -V

这样,您的实际构建脚本的输出将不会与下载依赖项和 Maven 插件的输出混在一起。

于 2016-03-08T20:12:12.127 回答
0

您可以使用以下方法打开它:install: true 跳过安装步骤

于 2016-03-08T07:55:57.560 回答