代码覆盖率测试的工具,比较常用的如下:
(1)开源:
JaCoCo [url=http://www.eclemma.org/jacoco/]http://www.eclemma.org/jacoco/ [/url]
Cobetura [url=http://cobertura.sourceforge.net/]http://cobertura.sourceforge.net/[/url]
Emma [url=http://emma.sourceforge.net/]http://emma.sourceforge.net/[/url]
(2)商用:
Clover [url=http://www.atlassian.com/software/clover/overview]http://www.atlassian.com/software/clover/overview[/url]
JaCoCo(Java Code Coverage)是开源的Java代码覆盖率测试library,它可以集成到ANT、Maven等build工具中。它采用标准的[url=http://docs.oracle.com/javase/7/docs/technotes/guides/jvmti/]JVM Tool Interface[/url]。把JaCoCo agent 加入到JVM后启动,加载到JVM中的class具体被执行了哪些代码行将会被记录下来,JaCoCo搜集这些执行信息直到JVM结束后生成静态报告。
[img]http://dl2.iteye.com/upload/attachment/0093/0219/9fa4e17d-abe3-3b96-bec0-841e092802ec.jpg[/img]
启动JVM时添加VM参数:
[quote]-javaagent:[yourpath/]jacocoagent.jar[/quote]
还可以指定很多option,具体可以参考[url=http://www.eclemma.org/jacoco/trunk/doc/agent.html]http://www.eclemma.org/jacoco/trunk/doc/agent.html[/url]
执行完成后会在工程根目录下生成jacoco.exec文件,如果要查看jacoco.exec文件需要安装Eclipse插件[url=http://www.eclemma.org/download.html]EclEmma[/url]。
[img]http://dl2.iteye.com/upload/attachment/0093/0221/e1093876-ff96-3be0-b4cc-583adcad38c9.png[/img]
如果想看具体的报告,需要借助JaCoCo的Ant扩展来生成报告文件:
[url=http://www.eclemma.org/jacoco/trunk/doc/examples/build/build.xml]http://www.eclemma.org/jacoco/trunk/doc/examples/build/build.xml[/url]
[b]HTML版本的报告:[/b]
[img]http://dl2.iteye.com/upload/attachment/0093/0223/aaf5bbbd-9cb2-3387-b03e-cd3a5e2b737f.png[/img]
[b]CSV版本的报告:[/b]
[img]http://dl2.iteye.com/upload/attachment/0093/0225/deba3939-b156-3a2e-8252-2aefbf23513f.png[/img]
[url=http://blog.csdn.net/wangmuming/article/details/23455947]http://blog.csdn.net/wangmuming/article/details/23455947[/url]
(1)开源:
JaCoCo [url=http://www.eclemma.org/jacoco/]http://www.eclemma.org/jacoco/ [/url]
Cobetura [url=http://cobertura.sourceforge.net/]http://cobertura.sourceforge.net/[/url]
Emma [url=http://emma.sourceforge.net/]http://emma.sourceforge.net/[/url]
(2)商用:
Clover [url=http://www.atlassian.com/software/clover/overview]http://www.atlassian.com/software/clover/overview[/url]
JaCoCo(Java Code Coverage)是开源的Java代码覆盖率测试library,它可以集成到ANT、Maven等build工具中。它采用标准的[url=http://docs.oracle.com/javase/7/docs/technotes/guides/jvmti/]JVM Tool Interface[/url]。把JaCoCo agent 加入到JVM后启动,加载到JVM中的class具体被执行了哪些代码行将会被记录下来,JaCoCo搜集这些执行信息直到JVM结束后生成静态报告。
[img]http://dl2.iteye.com/upload/attachment/0093/0219/9fa4e17d-abe3-3b96-bec0-841e092802ec.jpg[/img]
启动JVM时添加VM参数:
[quote]-javaagent:[yourpath/]jacocoagent.jar[/quote]
还可以指定很多option,具体可以参考[url=http://www.eclemma.org/jacoco/trunk/doc/agent.html]http://www.eclemma.org/jacoco/trunk/doc/agent.html[/url]
执行完成后会在工程根目录下生成jacoco.exec文件,如果要查看jacoco.exec文件需要安装Eclipse插件[url=http://www.eclemma.org/download.html]EclEmma[/url]。
[img]http://dl2.iteye.com/upload/attachment/0093/0221/e1093876-ff96-3be0-b4cc-583adcad38c9.png[/img]
如果想看具体的报告,需要借助JaCoCo的Ant扩展来生成报告文件:
[url=http://www.eclemma.org/jacoco/trunk/doc/examples/build/build.xml]http://www.eclemma.org/jacoco/trunk/doc/examples/build/build.xml[/url]
<project default="report" xmlns:jacoco="antlib:org.jacoco.ant">
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
<classpath path="lib/jacocoant.jar" />
</taskdef>
<target name="report">
<jacoco:report>
<executiondata>
<file file="jacoco.exec" />
</executiondata>
<structure name="JaCoCo Ant Example">
<classfiles>
<fileset dir="bin" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="src" />
</sourcefiles>
</structure>
<html destdir="target" />
<csv destfile="target/report.csv" />
</jacoco:report>
</target>
</project>
[b]HTML版本的报告:[/b]
[img]http://dl2.iteye.com/upload/attachment/0093/0223/aaf5bbbd-9cb2-3387-b03e-cd3a5e2b737f.png[/img]
[b]CSV版本的报告:[/b]
[img]http://dl2.iteye.com/upload/attachment/0093/0225/deba3939-b156-3a2e-8252-2aefbf23513f.png[/img]
[url=http://blog.csdn.net/wangmuming/article/details/23455947]http://blog.csdn.net/wangmuming/article/details/23455947[/url]