0

$JAVA_HOME/lib/ext使用以下命令将 emma.jar 复制到并对其进行检测。

java -cp emma.jar emma instr -m overwrite -cp @jarlist.txt

jarlist.txt 包含tomcat从war文件部署的jar文件列表。它被成功检测并创建了coverage.em

EMMA:处理仪表路径...

EMMA:检测路径在 5119 毫秒内处理

EMMA:[检测了 4125 个类,复制了 3142 个资源]

EMMA:元数据合并到 [/root/install/apache-tomcat-7.0.19/webapps/coverage.em] {in 553 ms}

但即使在多次重新启动tomcat后,coverage.ec文件也没有创建。我在这里缺少什么?

4

3 回答 3

3

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

它将以指定路径出现在日志的末尾。

于 2012-12-12T13:04:00.543 回答
1

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

于 2012-03-16T10:54:32.370 回答
0

我按照以下步骤操作:

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

例子:

带有完整路径的 Jar 名称:

e:\driven\web\web-inf\lib\abc.jar e:\driven\web\web-inf\lib\xyz.jar

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

  1. 使用以下命令检测 JARS:

c:\Program files\java\jre\lib\ext> java -cp emma.jar emma instr -m overwrite -cp @jarlist.txt

结果:EMMA:处理检测路径 ... EMMA:在 3819 毫秒内处理的检测路径 EMMA:[检测了 1942 个类,复制了 1030 个资源] EMMA:元数据合并到 [\jre\lib\ext\coverage。 em] {在 668 毫秒内}

如果您第二次尝试使用相同的命令,您将只得到以下结果:

EMMA:处理检测路径 ... EMMA:在 1875 毫秒内处理的检测路径 EMMA:[检测了 0 个类,复制了 2972​​ 个资源] EMMA:未创建输出:元数据为空

因为 jars 已经检测过 --> 0 个类并且没有创建输出。

--> 启动你的 Tomcat 并执行一些操作

Tomcat 日志您可以找到如下所示: EMMA:收集运行时覆盖率数据...

如果您能找到这意味着您将在停止 Tomcat 服务时获得 coverage.ec 文件。

停止 Tomcat 服务:日志的最后阶段将显示如下:

EMMA:运行时覆盖数据合并到 [\tomcat\bin\coverage.ec] {in 48 ms}

报告生成:

c:\jre\lib\ext> java -cp emma.jar emma report -r html -in coverage.em,......\tomcat\bin\coverage.ec

EMMA:处理输入文件 ... EMMA:在 582 毫秒内读取并合并了 2 个文件 EMMA:将 [html] 报告写入 [c:\jre\lib\ext\coverage\index.html] ...

您可以打开并查看 Index.html 以查看报告。

于 2012-12-12T14:39:10.797 回答