web-dev-qa-db-ja.com

Maven 3.0.2でCoberturaを使用する適切な方法は何ですか

ここ数日間、Maven 3.0.2でCobertura 2.4を実行しようとして失敗しました。多くのモジュール(サブプロジェクト)を持つ非常に大きなプロジェクトがあります。私が見つけたのは、ドキュメントは基本的に存在しないか、明らかに間違っているということです。私が見つけたすべてのチュートリアルはMaven 3.xでは動作しません(ビルドはできますが、Coberturaが実行されないか、レポートを生成できません)。

ここで誰かがそれを機能させることができましたか?役立つヒント/例はありますか?ありがとう。

21
juancn

これを追加することで、プロジェクトにCoberturaを正常に統合しました。

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <instrumentation>
            <includes>
              <include>foo/bar/**/*.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>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
    <!-- use mvn cobertura:cobertura to generate cobertura reports -->
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <version>2.4</version>
    <configuration>
      <formats>
        <format>html</format>
        <format>xml</format>
      </formats>
     </configuration>
      </plugin>
    </plugins>
  </reporting>

mvn cobertura:coberturaを実行すると、レポートはtarget\site\coberturaで生成されます。 maven cobertura plugin も参照してください。


今日、私は SonarQube でプロジェクトを分析します。簡単な インストール ステップ(エンタープライズデータベースの使用に関心がない場合)があり、他の多くのメトリックの中でコードカバレッジ分析( JaCoCo を使用)も含まれています。

24
FrVaBe

Maven 3.0.3(まだ質問していない)では、次のように、Mavenのサイトプラグインを使用して、coberturaを使用するように構成します。

<build>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.0</version>
            <configuration>
                <reportPlugins>
                    <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>
                    </plugin>
                </reportPlugins>
            </configuration>
        </plugin>
....
7
avandeursen

Webアプリケーションの<reporting>セクションにCoberturaプラグインを統合することもできます。

  <reporting>
    <outputDirectory>${project.build.directory}/site</outputDirectory>
    <plugins>
      <!-- Maven Project Info Reports Plugin -->
      <plugin>
        <groupId>org.Apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.7</version>
        <configuration>
          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
        </configuration>
      </plugin>
      <!-- Cobertura Code Coverage Plugin -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <instrumentation>
            <ignoreTrivial>true</ignoreTrivial>
          </instrumentation>
          <formats>
            <format>html</format>
            <format>xml</format>
          </formats>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

mvn siteを実行すると、アプリケーションのターゲットディレクトリ内のtarget/site/cobertura/index.htmlでレポートを利用できるようになります。

5