Emma没有创建coverage.ec文件

时间:2012-02-29 06:26:04

标签: tomcat code-coverage emma

将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文件。我在这里缺少什么?

3 个答案:

答案 0 :(得分:3)

您可以在停止Tomcat服务后搜索tomcat日志中的coverage.ec

它将出现在使用指定路径的日志结尾的日志中。

答案 1 :(得分:1)

当我在$ CATALINA_HOME / webapps / myapplication / WEB-INF / lib&中复制emma.jar时然后检测艾玛解决了这个问题。

答案 2 :(得分:0)

我按照以下步骤操作:

  1. 将emma.jar复制到\ jre \ lib \ ext文件夹
  2. 使用我想要检测的jar文件列表手动创建jarlist.txt。
  3. 示例:

    使用完整路径的jar名称:

    E:\驱动\幅\ WEB-INF \ lib中\ abc.jar E:\驱动\幅\ WEB-INF \ lib中\ xyz.jar

    将jarlist.txt放在同一个文件夹中 - jre \ lib \ ext文件夹

    1. 使用以下命令检测JARS:
    2. 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以查看报告。