将emma.jar复制到$JAVA_HOME/lib/ext
&使用以下命令对其进行检测。
java -cp emma.jar emma instr -m overwrite -cp @jarlist.txt
jarlist.txt包含tomcat从war文件部署的jar文件列表。并且它成功地进行了检测并且创建了coverage.em
EMMA:处理仪器路径......
EMMA:在5119 ms处理的检测路径
EMMA:[4125个类别已检测,3142个资源被复制]EMMA:元数据合并到[/root/install/apache-tomcat-7.0.19/webapps/coverage.em] {553 ms}
但即使重新启动tomcat多次,仍未创建coverage.ec文件。我在这里缺少什么?
答案 0 :(得分:3)
您可以在停止Tomcat服务后搜索tomcat日志中的coverage.ec
。
它将出现在使用指定路径的日志结尾的日志中。
答案 1 :(得分:1)
当我在$ CATALINA_HOME / webapps / myapplication / WEB-INF / lib&中复制emma.jar时然后检测艾玛解决了这个问题。
答案 2 :(得分:0)
我按照以下步骤操作:
示例:
使用完整路径的jar名称:
E:\驱动\幅\ WEB-INF \ lib中\ abc.jar E:\驱动\幅\ WEB-INF \ lib中\ xyz.jar
将jarlist.txt放在同一个文件夹中 - jre \ lib \ ext文件夹
c:\ Program files \ java \ jre \ lib \ ext> java -cp emma.jar emma instr -m overwrite -cp @ jarlist.txt
结果: EMMA:处理仪表路径...... EMMA:仪表路径在3819 ms内处理 EMMA:[1942 class(es)instrumented,1030资源被复制] EMMA:元数据合并到[\ jre \ lib \ ext \ coverage.em] {in 668 ms}
如果您尝试使用相同的命令,则第二次只能获得以下结果:
EMMA:处理仪器路径...... EMMA:仪器路径在1875 ms内处理 EMMA:[0 class(es)instrumented,2972资源被复制] EMMA:未创建输出:元数据为空
因为罐子已经检测过了 - > 0个类,没有创建输出。
- >启动Tomcat并执行一些操作
Tomcat Log您可以在下面找到: EMMA:收集运行时覆盖数据......
如果您发现这意味着您将在停止Tomcat服务时获得coverage.ec文件。
停止Tomcat服务:日志的最后阶段将显示如下:
EMMA:运行时覆盖率数据合并到[\ tomcat \ bin \ coverage.ec] {48 ms}
报告生成:
c:\ jre \ lib \ ext> java -cp emma.jar emma report -r html -in coverage.em,...... \ tomcat \ bin \ coverage.ec
EMMA:处理输入文件...... EMMA:在582 ms内读取和合并2个文件 EMMA:将[html]报告写入[c:\ jre \ lib \ ext \ coverage \ index.html] ......
您可以打开并查看Index.html以查看报告。