Maven Cobertura: модульное тестирование не удалось, но построить успех - PullRequest
4 голосов
/ 28 февраля 2011

Я настроил покрытие кода cobertura в моем pom:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.4</version>
<configuration>
    <instrumentation>
        <excludes>
            <exclude>**/*Exception.class</exclude>
        </excludes>
    </instrumentation>
    <formats>
        <format>xml</format>
        <format>html</format>
    </formats>
</configuration>
</plugin>

И запустить тест по следующей команде:

mvn clean cobertura:cobertura

Но если один из модульных тестов не пройден, Cobertura регистрирует только эту информацию и не помечает сбой сборки.

Tests run: 287, Failures: 1, Errors: 1, Skipped: 0

Flushing results...
Flushing results done
Cobertura: Loaded information on 139 classes.
Cobertura: Saved information on 139 classes.
[ERROR] There are test failures.

.................................

[INFO] BUILD SUCCESS

Как настроить сбой сборки Cobertura в одном из модульных тестов?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 28 февраля 2011

Если вы запускаете специальную цель из плагина cobertura, вы не можете заставить maven отказаться от сборки, если тест не был пройден успешно. Цель плагина будет успешной.

Вы можете привязать запуск кобертуры к фазе жизненного цикла (например, тест). Это заставит цель cobertura работать с этой фазой (mvn clean test) и потерпит неудачу, если эта фаза не пройдёт.

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <formats>
                    <format>xml</format>
                    <format>html</format>
                </formats>
            </configuration>
            <executions>
                <execution>
                    <phase>test</phase>
                    <goals>
                        <goal>cobertura</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

Недостатком этого решения является то, что цель cobertura будет выполняться на каждой test фазе.

0 голосов
/ 28 февраля 2011

Вы можете установить для свойства haltOnFailure значение true.

<configuration>
    ...
    <check>
        ...
        <haltOnFailure>true</haltOnFailure>
        ...
    </check>
</configuration>
...