21

在过去的几天里,我一直在尝试使用 Maven 3.0.2 运行 Cobertura 2.4,但没有成功。我们有一个非常大的项目,其中包含许多模块(子项目)。我发现文档基本上不存在或完全错误。我能找到的所有教程都不适用于 Maven 3.x(它们构建,但 Cobertura 要么不运行,要么无法生成报告)。

这里有没有人能够使它工作?任何有用的提示/示例?谢谢。

4

3 回答 3

23

我通过添加以下内容成功地将 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 插件


今天我用SonarQube分析项目。它有一个简单的安装步骤(如果您对使用企业数据库不感兴趣),还包括代码覆盖率分析(使用JaCoCo)以及许多其他指标。

于 2011-08-03T20:03:44.303 回答
7

在 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>
....
于 2012-02-20T13:30:14.220 回答
5

您还可以在<reporting>webapp 的部分中集成 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应用程序的目标目录中可用。

于 2014-08-31T12:28:10.237 回答