最近要把java中的代码覆盖率搞起来,开始使用的是emma,百度了好久没有搞定,然后换成jacoco。其中收集了一些资料:
eclipse的eclemma插件,使用的jacoco, 搞起来最轻松
http://www.eclemma.org/
emma的maven插件:
http://www.cnblogs.com/morebetter/archive/2013/06/26/3156756.html
jacoco的maven插件:
http://blog.csdn.net/wangmuming/article/details/28868833
http://www.cnblogs.com/D-Key/p/4530876.html ----想迅速用起来,这篇blog足够
emma好久不更新了,在配置的过程中,总是遇到: Illegal local variable table start_pc 6 in method , 貌似是jdk版本高了。。。 然后放弃了。
改用jacoco,配置如下
pom.xml中添加:摘自http://www.cnblogs.com/D-Key/p/4530876.html
- <span style="font-size:18px;"><build>
- <plugins>
-
- <plugin>
- <groupId>org.jacoco</groupId>
- <artifactId>jacoco-maven-plugin</artifactId>
- <version>0.7.9</version>
- <executions>
- <execution>
-
- <id>default-prepare-agent</id>
- <goals>
- <goal>prepare-agent</goal>
- </goals>
-
-
- <configuration>
- <destFile>
- ${project.build.directory}/coverage-reports/jacoco.exec
- </destFile>
- <propertyName>surefireArgLine</propertyName>
- </configuration>
-
-
- </execution>
-
-
- <!-- 在程序的verify阶段,执行report测试的程序。 文件的输入为perpare-agent阶段中设置或者默认的jacoco.exec.
- 参数 includes和excludes可用来选定report中过滤的类。 -->
- <execution>
- <id>default-report</id>
- <phase>test</phase>
- <goals>
- <goal>report</goal>
- </goals>
-
-
- <configuration>
- <dataFile>${project.build.directory}/coverage-reports/jacoco.exec</dataFile>
- <outputDirectory>${project.reporting.outputDirectory}/jacoco</outputDirectory>
- </configuration>
-
-
- </execution>
-
-
- </executions>
- </plugin>
-
-
- <!-- 使用 maven-surefire-plugin来执行单元测试。 将surefireArgLine赋值给argLine参数,以保证在测试执行时Jacoco
- agent处于运行状态。 -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.19.1</version>
- <configuration>
- <argLine>${surefireArgLine}</argLine>
- </configuration>
- </plugin>
- </plugins>
- </build></span>
mvn test,然后在target/site/.........找到统计结果