首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven代码覆盖率

Maven代码覆盖率
EN

Stack Overflow用户
提问于 2014-01-14 16:56:29
回答 2查看 1.8K关注 0票数 2

我是java世界的新手。我们的团队正在使用Maven将所有内容构建到单个.war文件中。我正在寻找工具来检测.war文件,以实现代码覆盖率。我的想法是手动检测.war文件,然后运行测试。

我看了几个工具,但没有得到我想要的东西,例如Emma,jester,cobertura等。

EN

回答 2

Stack Overflow用户

发布于 2014-01-14 21:33:34

如果你想测量代码覆盖率,你应该使用Jacoco。它允许测量单元测试和集成测试。

您所要做的就是添加依赖项:

代码语言:javascript
复制
  <dependency>
    <groupid>org.jacoco</groupid>
    <artifactid>org.jacoco.core</artifactid>
    <version>0.6.2.201302030002</version>
    <scope>test</scope>
  </dependency>

并添加jacoco-maven-plugin。请注意,如果不使用声纳,则必须将${sonar.jacoco.reportPath}属性替换为原始文件路径

代码语言:javascript
复制
<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.6.2.201302030002</version>
  <executions>
    <!-- prepare agent for measuring unit tests -->
    <execution>
      <id>prepare-unit-tests</id>
      <goals>
        <goal>prepare-agent</goal>
      </goals>
      <configuration>
        <destFile>${sonar.jacoco.reportPath}</destFile>
      </configuration>
    </execution>

    <!-- prepare agent for measuring integration tests -->
    <execution>
      <id>prepare-integration-tests</id>
      <goals>
        <goal>prepare-agent</goal>
      </goals>
      <phase>pre-integration-test</phase>
      <configuration>
        <destFile>${sonar.jacoco.itReportPath}</destFile>
        <propertyName>itCoverageAgent</propertyName>
      </configuration>
    </execution>
  </executions>
</plugin>

如果您还想使用声纳,请指定以下属性:

代码语言:javascript
复制
<properties>
  <!-- select JaCoCo as a coverage tool -->
  <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
  <!-- force sonar to reuse reports generated during build cycle -->
  <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
  <!-- set path for unit tests reports -->
  <sonar.jacoco.reportPath>${project.basedir}/target/jacoco-unit.exec</sonar.jacoco.reportPath>
  <!-- all modules have to use the same integration tests report file -->
  <sonar.jacoco.itReportPath>${project.basedir}/../target/jacoco-it.exec</sonar.jacoco.itReportPath>
</properties>

您可以在http://www.kubrynski.com/2013/03/measuring-overall-code-coverage-in.html上找到更多详细信息

票数 2
EN

Stack Overflow用户

发布于 2014-01-14 20:16:55

Cobertura将支持这一点。请参阅此问题的答案。

Java: measure code coverage for remote scripting tests

如果您希望在开发中而不是在构建服务器上执行此操作,那么您可能希望尝试一下eclemma。你可以在你的IDE中启动你的webapp,然后简单地运行你想要运行的任何测试(在eclemma之外),它将很好地注释正在运行的绿色代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21109349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档