Maven + Emmaコードカバレッジの例
Emmaは、無料のJavaコードカバレッジツールです。 このチュートリアルでは、Mavenを使用してプロジェクトのEmmaコードカバレッジレポートを生成する方法、およびEmmaレポートをMavenプロジェクトサイトに統合する方法を示します。
1. エマコードカバレッジレポートの生成
何もせず、次のMavenコマンドmvn emma:emma
を入力して、maven-emma-plugin
を実行します。
c:\project> mvn emma:emma //... Tests run: 16, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.53 sec EMMA: locking coverage output file [C:\example_projects\TestNG\coverage.ec] ... EMMA: runtime coverage data merged into [C:\example_projects\TestNG\coverage.ec] {in 78 ms} Results : Tests run: 16, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] <<< emma-maven-plugin:1.0-alpha-3:emma (default-cli) @ TestNG <<< [INFO] [INFO] --- emma-maven-plugin:1.0-alpha-3:emma (default-cli) @ TestNG --- processing input files ... 2 file(s) read and merged in 1 ms writing [xml] report to [C:\example_projects\TestNG\target\site\emma\coverage.xml] ... writing [html] report to [C:\example_projects\TestNG\target\site\emma\index.html] ... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4.004s [INFO] Finished at: Fri Jan 10 23:32:05 SGT 2014 [INFO] Final Memory: 25M/307M [INFO] ------------------------------------------------------------------------ C:\example_projects\TestNG>
Mavenはコンパイルし、単体テストとEmmaプラグインを実行して、${project}/target/site/index.html
でコードカバレッジレポートを生成します。
図:Emmaコードカバレッジレポートのサンプル、${project}/target/site/index.html
。
図:詳細ページ。
2. Mavenサイト+エマレポート
EmmaレポートをMavenプロジェクトサイトに統合するには、レポートセクションに以下を追加します。
pom.xml
//...// integrate maven emma plugin to project site org.apache.maven.plugins maven-project-info-reports-plugin 2.7 false org.codehaus.mojo emma-maven-plugin 1.0-alpha-3 true
Mavenプロジェクトサイトの作成
c:\project> mvn site //... Tests run: 16, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.45 sec EMMA: locking coverage output file [C:\example_projects\TestNG\coverage.ec] ... EMMA: runtime coverage data merged into [C:\example_projects\TestNG\coverage.ec] {in 38 ms} Results : Tests run: 16, Failures: 0, Errors: 0, Skipped: 0 //... Generating other reports [INFO] Generating "Project Summary" report [INFO] Generating "Dependencies" report [INFO] Generating "EMMA Test Coverage" report processing input files ... 2 file(s) read and merged in 2 ms writing [xml] report to [C:\example_projects\TestNG\target\site\emma\coverage.xml] ... writing [html] report to [C:\example_projects\TestNG\target\site\emma\index.html] ... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 8.488s [INFO] Finished at: Fri Jan 10 23:43:58 SGT 2014 [INFO] Final Memory: 40M/1024M [INFO] ------------------------------------------------------------------------
出力–プロジェクトサイト、${project}/site/index.html
3. Mavenビルドに統合する
ビルドセクションに「emma-maven-plugin」を含めることもできます。
pom.xml
//...org.codehaus.mojo emma-maven-plugin 1.0-alpha-3 true process-classes instrument
class X appears to be instrumented alreadyエラーに注意してください。