問題:
私はプロジェクトを持っていますジャココ特定のクラスやパッケージをフィルタリングできるようにしたいと考えています。
関連ドキュメント:
私は以下のドキュメントを読みました:
正式ジャココサイト: http://www.eclemma.org/jacoco/index.html
正式ジャココドキュメントグラドル: https://gradle.org/docs/current/userguide/jacoco_plugin.html
正式ジャココ Github
問題、カバレッジの作業: https://github.com/jacoco/jacoco/wiki/フィルタリングオプション https://github.com/jacoco/jacoco/issues/14
関連する StackOverflow リンク:
JaCoCo & Gradle - フィルタリング オプション(回答なし)
Sonarrunner と Gradle を使用して Jacoco レポートからパッケージを除外する(使用していないソナー)
JaCoCo - レポートから JSP を除外する(効果があるようですメイブン、 使っていますグラドル)
Maven Jacoco 構成 - レポートからクラス/パッケージを除外できない(効果があるようですメイブン、 使っていますグラドル)
JaCoCo Gradleプラグインの除外(これは動作しませんでした)
Gradle Jacoco - カバレッジレポートには構成で除外されたクラスが含まれます(非常に近いようですが、使用しましたがdoFirst
、私には機能しませんでした)
私が試したことの例:
apply plugin: 'java'
apply plugin: 'jacoco'
buildscript {
repositories {
mavenCentral()
jcenter()
}
}
repositories {
jcenter()
}
jacocoTestReport {
reports {
xml {
enabled true // coveralls plugin depends on xml format report
}
html {
enabled true
}
}
test {
jacoco {
destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
classDumpFile = file("$buildDir/jacoco/classpathdumps")
excludes = ["projecteuler/**"] // <-- does not work
// excludes = ["projecteuler"]
}
}
}
質問:
生成時に特定のパッケージやクラスを除外するにはどうすればいいですか?ジャココ報道レポートですか?
ベストアンサー1
感謝Yannick Welsch
:
Googleで検索し、Gradleのドキュメントを読み、StackOverflowの古い投稿を調べたところ、公式のグラドルフォーラム!
jacocoTestReport {
afterEvaluate {
classDirectories.setFrom(files(classDirectories.files.collect {
fileTree(dir: it, exclude: 'com/blah/**')
}))
}
}
ソース: https://issues.gradle.org/browse/GRADLE-2955
5.x未満の古いGradleバージョンでは、classDirectories = files(classDirectories.files.collect {
代わりにclassDirectories.setFrom
build.gradle
Java/Groovy プロジェクトに対するソリューション:
apply plugin: 'java'
apply plugin: 'jacoco'
jacocoTestReport {
reports {
xml {
enabled true // coveralls plugin depends on xml format report
}
html {
enabled true
}
}
afterEvaluate {
classDirectories = files(classDirectories.files.collect {
fileTree(dir: it,
exclude: ['codeeval/**',
'crackingthecode/part3knowledgebased/**',
'**/Chapter7ObjectOrientedDesign**',
'**/Chapter11Testing**',
'**/Chapter12SystemDesignAndMemoryLimits**',
'projecteuler/**'])
})
}
}
ご覧のとおり、exclude:
いくつかのパッケージをフィルタリングするために、さらに追加することができました。
ソース: https://github.com/jaredsburrows/CS-Interview-Questions/blob/master/build.gradle
Android などの他のプロジェクト用のカスタム タスク:
apply plugin: 'jacoco'
task jacocoReport(type: JacocoReport) {
reports {
xml {
enabled true // coveralls plugin depends on xml format report
}
html {
enabled true
}
}
afterEvaluate {
classDirectories = files(classDirectories.files.collect {
fileTree(dir: it,
exclude: ['codeeval/**',
'crackingthecode/part3knowledgebased/**',
'**/Chapter7ObjectOrientedDesign**',
'**/Chapter11Testing**',
'**/Chapter12SystemDesignAndMemoryLimits**',
'projecteuler/**'])
})
}
}