Maven Emmaコードカバレッジの例
エマ
は無料のJavaコードカバレッジツールです。このチュートリアルでは、Mavenを使用してプロジェクトのEmmaコードカバレッジレポートを生成する方法と、EmmaレポートをMavenプロジェクトサイトに統合する方法について説明します。
1. Emmaコードカバレッジレポートを生成する
何もしないで、次の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:\mkyong__projects\TestNG\coverage.ec]... EMMA: runtime coverage data merged into[C:\mkyong__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:\mkyong__projects\TestNG\target\site\emma\coverage.xml]... writing[html]report to[C:\mkyong__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:\mkyong__projects\TestNG>
Mavenは `$ {project}/target/site/index.html`にあるコードカバレッジレポートを生成するためにコンパイルし、ユニットテストとEmmaプラグインを実行します。
Figure:Emmaコードカバレッジレポートのサンプル、
$ {project}/target/site/index.html
.
図:詳細ページ.
2. MavenサイトEmmaレポート
EmmaレポートをMavenプロジェクトサイトに統合するには、以下をレポートセクションに追加します。
pom.xml
//... <reporting> <plugins> <!-- Normally, dependency report takes time, skip it --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> <version>2.7</version> <configuration> <dependencyLocationsEnabled>false</dependencyLocationsEnabled> </configuration> </plugin> //integrate maven emma plugin to project site <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>emma-maven-plugin</artifactId> <version>1.0-alpha-3</version> <inherited>true</inherited> </plugin> </plugins> </reporting>
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:\mkyong__projects\TestNG\coverage.ec]... EMMA: runtime coverage data merged into[C:\mkyong__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:\mkyong__projects\TestNG\target\site\emma\coverage.xml]... writing[html]report to[C:\mkyong__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
//... <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>emma-maven-plugin</artifactId> <version>1.0-alpha-3</version> <inherited>true</inherited> <executions> <execution> <phase>process-classes</phase> <goals> <goal>instrument</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
リンク://qa/emma-class-x-instrumented-appear/already/[クラスXは既に装備されているようです]エラーに気を付けてください。
参考文献
-
http://maven.apache.org/guides/mini/guide-site.html
[Maven – 作成する
サイト]。
エクマのコードカバレッジツール
プラグイン]。
http://ja.wikipedia.org/wiki/Java
Code
Coverage__Tools[Javaコード
カバレッジツール]。リンク://qa/maven-cobertura-code-coverage-example/[Maven Cobertuna
コードカバレッジの例]
リンク://タグ/コードカバレッジ/[コードカバレッジ]リンク://タグ/emma/[emma]
maven site