使用EMMA生成代码测试覆盖率报告简单应用

Java测试代码覆盖率工具有Clover, Jcoverage和Emma等,其中只有Emma才算是彻底免费开源的,用起来也比较方便。
而Jcoverage使用起来就有些繁琐,必须一步步按照规定的方式走,步骤为 debug方式compile->instrument->test->coverage

下面将简单介绍emma的使用,以下方法告诉你如以以命令的方式来生成代码测试覆盖率,当然你也可以写成 Ant 任务的方式,这就要求自己写几个 Ant 用的Task类,其实也不难。

emma的下载地址是:http://emma.sourceforge.net/downloads.html

在你的TestCase类中最好加上一个main方法,如下

执行命令为
java -cp .\lib\junit.jar;.\lib\emma.jar emmarun -r html -sp .\src -cp .\bin com.unmi.CatTest

.需要指定junit.jar,emma.jar包,执行emmarun类的main方法
.-r 是用来指定生成报告的形式。Emma可以支持txt,html,xml格式的报告
.-sp 是用来指定原代码的路径的

执行成功之后在项目目录下多了个coverage目录,打开其中的index.html,可以看到结果报告,非常详细,会显示每一个走过类的报告,覆盖率及不同颜色标示出类中代码已覆盖代码行和未覆盖代码行

同时EMMA也支持把单个的测试类 com.unmi.CatTest 替换为相应的测试套类如 com.unmi.AllTests
同样,你必须在你的TestSuit类中加入一个main方法,如

在 TestCase 或 TestSuit 中如果不加 main 方法,执行emmarun时会出现如下异常
Exception in thread "main" com.vladium.emma.EMMARuntimeException: [MAIN_METHOD_NOT_FOUND] application
但是不会影响到覆盖率报告的生成

[以后也将在此贴上一些用EMMA生成的覆盖率报告图片]

本文链接 https://yanbin.blog/emma-code-coverage-report/, 来自 隔叶黄莺 Yanbin Blog

[版权声明] Creative Commons License 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。

Subscribe
Notify of
guest

1 Comment
Inline Feedbacks
View all comments
路过游客
1 year ago

加个友联吧
http://yiqizhuanba.cn