Mavenを使用するJavaプロジェクトの構造は、多数の単体テストを意味します。
しかし、テストだけでは十分ではありません。テストがコードをカバーする限り、より完全な情報が必要です。
これらの目的のために、私はEmma(
off site )を使用する多くのライブラリがあります。
Pom.xmlの構成
まず、コンパイルフェーズ(プロセスクラスフェーズ)の後に、クラスにEmmaインスツルメンテーションを追加します
<プラグイン>
<groupId> org.sonatype.maven.plugin </ groupId>
<artifactId> emma-maven-plugin </ artifactId>
<バージョン> 1.2 </バージョン>
<構成>
<フィルター>
<filter> + org。* </ filter>
<filter> -org.some.package。* </ filter>
</ filters>
</構成>
<実行>
<実行>
<phase>プロセスクラス</ phase>
<目標>
<goal>楽器</ goal>
</ goals>
</実行>
</ executions>
</ plugin>
例からわかるように、emma-maven-pluginはフィルタリングをサポートしています。
プラグインオプションの詳細
デフォルトでは、インストルメント済みクラスは$ {project.build.directory} / generated-classes / emma / classesディレクトリに作成されます。
このディレクトリは、maven-surefire-pluginのclassesDirectoryとして注意する必要があります。
<プラグイン>
<groupId> org.apache.maven.plugins </ groupId>
<artifactId> maven-surefire-plugin </ artifactId>
<構成>
<classesDirectory> $ {project.build.directory} / generated-classes / emma / classes </ classesDirectory>
</構成>
</ plugin>
最後に、テスト段階でレポートを追加しましょう。
<プラグイン>
<groupId> org.sonatype.maven.plugin </ groupId>
<artifactId> emma4it-maven-plugin </ artifactId>
<バージョン> 1.3 </バージョン>
<実行>
<実行>
<id>レポート</ id>
<phase>テスト</ phase>
<目標>
<goal>レポート</ goal>
</ goals>
<構成>
<sourceSets>
<sourceSet>
<ディレクトリ> $ {project.build.sourceDirectory} </ディレクトリ>
</ sourceSet>
</ sourceSets>
</構成>
</実行>
</ executions>
</ plugin>
その結果、HTML、TXT、およびXMLレポートを含むターゲット/サイト/ emmaディレクトリを取得します。
ハドソン
Emmaプラグイン(http://wiki.hudson-ci.org//display/HUDSON/Emma+Plugin)をインストールし、プロジェクト構成で[Emmaカバレッジレポートの記録]チェックボックスをオンにします。
このプラグインは、emma4itプラグインによって作成されたcoverage.xmlを使用します。
その結果、グラフ、カバレッジ率の表などがあります。
スケジュールの例(悪い):