Cobertura with Maven - потерпеть неудачу, если охват ниже порогового значения, но все еще генерировать сайт - PullRequest
4 голосов
/ 02 ноября 2011

Я использую Cobertura с Maven.

Я бы хотел, чтобы сборка не работала, если охват ниже заданного порогового значения, но я бы хотел, чтобы сайт (включая отчет Cobertura) все еще создавался. Это связано с тем, что разработчикам необходимо обратиться к отчету о покрытии, чтобы узнать, где они могут добавить больше покрытия для исправления неудачной сборки.

В настоящее время мой пом выглядит так:

<project>
  <build>
    ...
    <plugins>
        <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>cobertura-maven-plugin</artifactId>
      <version>${cobertura.version}</version>
      <configuration>
    <check>
      <totalLineRate>${cobertura.check.totalLineRate}</totalLineRate>
    </check>
      </configuration>
      <executions>
    <execution>
      <goals>
        <goal>clean</goal>
        <goal>check</goal>
      </goals>
    </execution>
      </executions>
    </plugin>
        ...
    </plugins>
  </build>
  <reporting>
    <plugins>
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>cobertura-maven-plugin</artifactId>
  <version>${cobertura.version}</version>
</plugin>
    ...
    </plugins>
  </reporting>
</project>

Если я запускаю mvn clean verify site, то он генерирует отчет о покрытии HTML, если цель покрытия достигнута, но не удается построить без создания отчета, если цель покрытия не достигнута. Как я могу изменить его, чтобы всегда генерировать отчет?

Ответы [ 2 ]

4 голосов
/ 02 ноября 2011

Вместо сбоя сборки, если цель покрытия кода не достигнута, возможно ли установить ее так, чтобы она помечалась как нестабильная?Я знаю, что есть способы сделать это через CI-сервер Jenkins, но я не уверен, что это возможно сделать с помощью pom.xml.С другой стороны, «нестабильные» сборки могут быть более специфичными для Jenkins и могут не существовать как возможность только через ваш pom-файл.

1 голос
/ 03 ноября 2011

Быстрый обходной путь: удалите цель check:

<executions>
    <execution>
        <goals>
            <goal>clean</goal>
        </goals>
    </execution>
</executions>

, затем запустите

mvn clean verify site cobertura:check

Если вы используете Hudson / Jenkins, удалите все проверки из pom.xml и установите плагин Cobertura в Hudson и настройте проверки в плагине Hudson / Jenkins.

...