0

プロジェクトを Gradle 1.0 でビルドし、EMMA プラグインを使用してコード カバレッジ情報を取得しています。特定のファイルをカバレッジ レポートから除外したいと考えています。

どうすればそれを達成できますか?

4

2 に答える 2

1

この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ます。コードを変更し、それが機能することを確認した後、作成者にプルリクエストを送信します。彼はあなたの変化を取り入れると確信しています。

于 2012-06-19T11:36:15.947 に答える
0

これは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

于 2013-04-26T21:28:39.923 に答える