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 では、最初 mvn install -DskipTests=trueに Travisが依存関係を取得するために実行されるため、ビルドは失敗します。明らかに、テストがスキップされるとカバレッジがなくなるため、ビルド全体が失敗します。

[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 に答える