« kato izumi Live at the bottom line | Main | Eclipse上でjarファイル内のソース参照 »

2007.08.24

Seasar2アプリに対してEMMAでカバレッジ

 Seasar2では、実際に実行されるクラスはデフォルトのクラス(コンパイル直後のクラスファイル)ではなく、AOPなどが適用された後のクラスであると言うことが多々あります。

 果たして、Seasar2でAOPを適用されたクラスが動作するWebアプリケーションにおいてEMMAでカバレッジ情報を取得することはできるか否か? ってことで、試してみました(フォルダ等は適当に読み替えてください)。

【作業用フォルダからクラスファイルを処理】

..\jdk\jre\bin\java -cp emma.jar emma instr -m overwrite -cp ../apache-tomcat-5.5.23/webapps/sampleApp/WEB-INF/classes

【Webアプリケーションを実行】
sampleApp/WEB-INF/lib フォルダ内にemma.jarをコピーし、Tomcatを起動。

【カバレッジ情報を取得】

..\jdk\jre\bin\java -cp emma.jar emma ctl -connect localhost:47653 -command coverage.get,coverage.ec

通常のEMMAのofflineモードでのデータ取得方法です。

【カバレッジ情報を解析】

..\jdk\jre\bin\java -Dfile.encoding=UTF-8 -Demma.report.html.out.encoding=UTF-8 -cp emma.jar emma report -r html -sp ./src -in coverage.em,coverage.ec

Seasar2で開発ってことで、ソースファイルは全てUTF-8で記述しているので、-Dfile.encodingオプションを付加して実行(でなければ、日本語が化けてしまいます)。

【結果】
AOPが適用されたクラス(Pageクラス等)でも問題なくカバレッジ情報を取得することができました。測定対象となった行(結果の表示)等もずれることなく、(今回試した範囲では)期待通りの結果が得られました。いい感じです。(^^)

|

« kato izumi Live at the bottom line | Main | Eclipse上でjarファイル内のソース参照 »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/16213946

Listed below are links to weblogs that reference Seasar2アプリに対してEMMAでカバレッジ:

« kato izumi Live at the bottom line | Main | Eclipse上でjarファイル内のソース参照 »