2016-10-22 5 views
0

パッケージ全体をjacocoカバレッジから除外しようとしていますが、機能しません。
私はこの回答Filter JaCoCo coverage reports with Gradleで報告された指示に従ってきましたが、それは私のために働いていないようです。 これはコードです:またjacocoテストレポートパッケージを除外しない

test { 
    jacoco { 
    excludes += ['it.unibo.distributedBLS.main/**',  
    } 
} 

が、まだ動作していないを追加することにより、

jacocoTestReport { 
    reports { 
    xml.enabled false 
    csv.enabled false 
    html.destination "${buildDir}/jacocoHtml" 
    } 
    afterEvaluate { 
    classDirectories = files(classDirectories.files.collect { 
     fileTree(dir: it, 
       exclude: ['it.unibo.distributedBLS.main/**']) 
    }) 
    } 
} 

私も除外のようなバリエーションを試してみた+ =、

'**/it.unibo.distributedBLS.main/**' 

とを執筆。
私には分かりませんが、それは "dir:it"の略です。私はそこに何を置くべきですか?エラーである可能性はありますか?

+0

いいえ、 'dir:it'は問題ありません。これは、各コレクションディレクトリが最初のパラメータとしてfileTreeに渡されることを意味します。 –

+0

除外されていないパッケージの結果が表示されますか?またはそれらはすべて0%ですか?あなたがリンクした答えは、 'afterEvaluate { classDirectories = files(classDirectories.files.collect { fileTree(dir:it、 exclude:['**/it.unibo.distributedBLS.main/**'])}ということです。 )} 'は、htmlから結果を取り除くために動作し、' jacoco { excludes + = ['**/it.unibo.distributedBLS.main/**'}} 'はテストが実行されないようにすべきです。両方とも必要で、パターンが必要です。**/it.unibo.distributedBLS.main/** ' –

答えて

0

ここは私のために働いたものです(少なくともHTMLではなく、xmlレポートで)。私はそれを少しでも微調整してビルドを再実行しながら偶然見つけました。それは今では意味がありますが、直感的ではありません。私はjacocoTestReport.afterEvaluate

test { 
    finalizedBy jacocoTestReport 
    jacoco { 
     excludes += ["**/com.mypackage.things/**","**/com.mypackage.entity/**"] 
    } 
} 

jacocoTestReport { 
    reports { 
     xml.enabled true 
     csv.enabled false 
     html.enabled false 
     xml.destination "${buildDir}/reports/jacoco" 
    } 

    afterEvaluate { 
     classDirectories = files(classDirectories.files.collect { 
      fileTree(dir: it, 
       exclude: ['**/com/mypackage/things/**', 
          '**/com/mypackage/entity/**']) 
     }) 
    } 
} 

に実際のレポートから除外対test.jacocoで私のパッケージを定義する方法に

ご注意私はSonarqubeのためのXMLを生成するが、私はに再実行されていたように私はHTMLに一時的に切り替えパッケージが削除されたかどうかを確認してください。ある時点で、私はcom.mypackage.entityが除外されていることに気づいたが、com.mypackage.thingsは除外されていた。それで、/のレポートでエンティティパッケージを定義したことがわかりましたが、物パッケージに.を使っていました。

テストセクションでは、レポートセクションのようにドット表記を使用する方が理にかなっています。なぜなら、レポートはおそらくhtmlのディレクトリ構造の中に生成されるからです。スラッシュ表記を使用するのが理にかなっています。まだXMLのためにそれを修正する方法がわかりません。私は他の記法の何らかの種類を推測する???

+0

フォローアップ:パッケージがXMLで除外されているようです。だから私はそれがどこの情報を見つけるかを知る必要があるソナーだと思います。それは両方のために動作すると思います! – Justin

関連する問題