Cobertura проверяет неудачу на Travis CI
В моей сборке 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 сборка завершается неудачно, потому что сначала запускается Travismvn 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"
2 ответа
Вы можете включить это с помощью: install: true
который пропускает этап установки.
В качестве альтернативы ответу kmarbaise, вместо того, чтобы полностью отключить этап установки, вы можете заменить его настройкой так, чтобы он пропускал проверку Cobertura:
install: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -Dcobertura.skip=true -B -V
Таким образом, выходные данные вашего фактического сценария сборки не будут загромождены результатами загрузки зависимостей и подключаемых модулей Maven.