Покрытие кода Cobertura составляет 0% при использовании Maven 3 - PullRequest
7 голосов
/ 04 ноября 2011

Прочитав это: Как правильно использовать Cobertura с Maven 3.0.2 и это: http://www.wakaleo.com/blog/292-site-generation-in-maven-3

мой файл POM выглядит так:

    <build>
    <plugins>
        .....
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.0</version>
            <configuration>
                <reportPlugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.7</version>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jxr-plugin</artifactId>
                        <version>2.1</version>
                        <configuration>
                            <aggregate>true</aggregate>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-report-plugin</artifactId>
                        <version>2.6</version>
                        <configuration>
                            <skip>true</skip>
                            <useFile>false</useFile>
                            <argLine>-Xmx512m</argLine>
                            <systemProperties>
                                <property>
                                    <name>generateReport</name>
                                    <value>html</value>
                                </property>
                            </systemProperties>
                        </configuration>
                        <executions>
                            <execution>
                                <id>unit-test</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                                <configuration>
                                    <skip>false</skip>
                                    <includes>
                                        <include>**/UnitTest*.java</include>
                                        <include>**/*UnitTest.java</include>
                                        <include>**/*Scenarios.java</include>
                                    </includes>
                                </configuration>
                            </execution>
                            <execution>
                                <id>integration-test</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                                <configuration>
                                    <skip>${integrationTestsSkip}</skip>
                                    <includes>
                                        <include>**/*IntegrationTest.java</include>
                                    </includes>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>cobertura-maven-plugin</artifactId>
                        <version>2.5.1</version>
                        <configuration>
                            <instrumentation>
                                <includes>
                                    <include>**/UnitTest*.class</include>
                                    <include>**/*UnitTest.class</include>
                                    <include>**/*Scenarios.class</include>
                                </includes>
                            </instrumentation>
                        </configuration>
                        <executions>
                            <execution>
                                <id>clean</id>
                                <phase>pre-site</phase>
                                <goals>
                                    <goal>clean</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>instrument</id>
                                <phase>site</phase>
                                <goals>
                                    <goal>instrument</goal>
                                    <goal>cobertura</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <version>2.6</version>
                    </plugin>
                </reportPlugins>
            </configuration>
        </plugin>

        ......



    </plugins>
</build>

После запуска cobertura: cobertura я до сих пор не получаю никаких отчетов. В целевой папке cobertura пусто и нет папки с именем site. Может кто-нибудь сказать мне, что я сделал не так? Когда я использовал старый подход с maven 2.2, все работало нормально, но с M3 я получил плохие результаты.

Ответы [ 3 ]

1 голос
/ 26 марта 2013

Хорошо, я обнаружил, что может потребоваться явно включить ** / * Test.java в раздел конфигурации maven-surefire-plugin при настройке специальных выполнений в родительском pom или при использовании родительского вообще. .... в остальном во время выполнения кобертуры он не выполнял никаких достоверных тестов, а в отчетах всегда был нулевой охват.

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

Хорошо, проблема решена. Странно, после нескольких обновлений и восстановлений все стало работать просто отлично. Файл Ser присутствовал в каталоге и теперь все отчеты генерируются правильно. Я очень удивлен этим:)

0 голосов
/ 02 июля 2013

Я не пробовал запускать maven-cobertura-plugin как часть maven-site-plugin.

Я заставил его работать напрямую, переместив maven-cobertura-plugin из 'build' в 'report', как в моем ответе здесь: Почему cobertura сообщает, что покрытие кода равно нулю для всех модулей, кроме одного, в проекте maven с несколькими модулями?

...