プロジェクトを Gradle 1.0 でビルドし、EMMA プラグインを使用してコード カバレッジ情報を取得しています。特定のファイルをカバレッジ レポートから除外したいと考えています。
どうすればそれを達成できますか?
プロジェクトを Gradle 1.0 でビルドし、EMMA プラグインを使用してコード カバレッジ情報を取得しています。特定のファイルをカバレッジ レポートから除外したいと考えています。
どうすればそれを達成できますか?
このGradleスクリプトを含めていますか?インストルメンテーション定義内のクラスを除外できると思います(以下の例を参照)。ただし、規則プロパティを使用して除外パターンを設定できるようには見えません。
ant.emma(enabled: 'true', verbosity:'info'){
instr(merge:"true", destdir: emmaInstDir.absolutePath, instrpathref:"run.classpath",
metadatafile: new File(emmaInstDir, '/metadata.emma').absolutePath) {
instrpath {
fileset(dir:sourceSets.main.output.classesDir.absolutePath, includes:"**/*.class", excludes:"**/Some*.class")
}
}
}
もし私があなたなら、プラグインをフォークしようとします。そこに新しいフィールドを追加してEmmaPluginConvention
、除外パターンを設定し、その変数を定義で使用できるようにしinstrpath
ます。コードを変更し、それが機能することを確認した後、作成者にプルリクエストを送信します。彼はあなたの変化を取り入れると確信しています。
これはgradle 1.5では機能しません。Emma は次のようなフィルターを使用します。
ant.emma(enabled: 'true', verbosity: $verbosityLevel) {
instr(merge: "true", destdir: emmaInstDir.absolutePath, instrpathref: "run.classpath",
metadatafile: new File(emmaInstDir, '/metadata.emma').absolutePath, filter: "-com.someclass.*" ) {
instrpath {
fileset(dir: sourceSets.main.output.classesDir.absolutePath, includes: "**/*.class" )
}
}
}
フィルターは、このページの定義に従います: http://emma.sourceforge.net/reference/ch02s06s02.html