私は以下の手順に従いました:
- emma.jarを\jre\ lib\extフォルダーにコピーしました
- インストルメントしたい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フォルダー)に配置しました
- 次のコマンドを使用してインストルメント化された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を開いて表示すると、レポートを表示できます。