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] にマージされました {553 ミリ秒}

しかし、Tomcat を複数回再起動した後でも、coverage.ec ファイルは作成されませんでした。ここで何が欠けていますか?

4

3 に答える 3

3

coverage.ecTomcat サービスを停止した後、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:\ drive \ 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 override -cp @ jarlist.txt

結果:EMMA:インストルメンテーションパスを処理しています... EMMA:3819ミリ秒で処理されたインストルメンテーションパスEMMA:[インストルメントされた1942クラス、コピーされた1030リソース] EMMA:メタデータが[\ jre \ lib \ ext\coverageにマージされました。 em]{668ミリ秒で}

2回目に同じコマンドを試してみると、次の結果しか得られません。

EMMA:インストルメンテーションパスを処理しています... EMMA:1875ミリ秒で処理されたインストルメンテーションパスEMMA:[インストルメントされた0クラス、コピーされた2972リソース] EMMA:出力が作成されていません:メタデータが空です

jarはすでにインストルメント化されているため->0クラスであり、出力は作成されません。

-> Tomcatを起動し、いくつかの操作を実行します

以下のように見つけることができるTomcatログ:EMMA:ランタイムカバレッジデータの収集..。

uが見つかった場合、これは、Tomcatサービスの停止中にcoverage.ecファイルを取得することを意味します。

Tomcatサービスを停止します。ログの最終フェーズは次のように表示されます。

EMMA:ランタイムカバレッジデータが[\ tomcat \ bin \coverage.ec]{48ミリ秒で}にマージされました

レポートの生成:

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 に答える