0

cobertura を使用して、マルチモジュール Maven プロジェクトのコード カバレッジ レポートを生成しようとしています。mvn clean を実行してから mvn package を実行した後。次に、JUnit テストを実行したモジュールの 1 つで、そのモジュールに対して生成されたカバレッジ レポートは期待どおりに正確です。ただし、対象となるパッケージはごく一部です。すべてのパッケージが対象となるわけではありません。これは、1 つの親 POM と各子モジュールが独自の POM を持つマルチモジュール プロジェクトであることを忘れないでください。これらの子 POM のそれぞれに cobertura maven プラグインの詳細も含める必要がありますか?

ただし、他の /target/site/cobertura ディレクトリで生成される個々のモジュール固有のカバレッジ レポートは、回線カバレッジとブランチ カバレッジの両方についてゼロとして報告されます。

親 POM に何か足りないものがありますか? ディレクトリ内の子 POM に変更を加えていません。cobertura を使用してマルチ モジュール Maven プロジェクトのコード カバレッジ レポートを生成する方法を教えてください。

これが私の親POMの外観です。

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

...

<dependencies>
    <dependency>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.5.1</version>
        <type>plugin</type>
        <scope>package</scope>
    </dependency>
</dependencies>

ありがとう!

4

1 に答える 1

2

ドキュメントによると、ビルドの一部として実行されるプラグインとレポートの一部として実行されるプラグインには違いがあります: http://maven.apache.org/guides/mini/guide-configuring-plugins.html

「実行」を使用すると、「ビルド」の下にプラグインがあることが示唆されますが、明らかに「レポート」の下に属します-coberturaの使用ページによると: http://mojo.codehaus.org/cobertura-maven-plugin/usage.html

「ビルド」から cobertura プラグインを完全に削除し、代わりに「レポート」の下に配置してみてください。

<project>
    <!-- project stuff-->
    <build>
        <!-- build stuff -->
    </build>
    <reporting>
        <plugins>
            <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.2</version>
                <configuration>
                    <formats>
                        <format>html</format>
                    </formats>
                </configuration>
            </plugin>
        </plugins>
    </reporting>
</project>

次に、次のいずれかで実行します

mvn cobertura:cobertura

または

mvn site
于 2013-07-02T10:31:27.123 に答える