[解決済み] GradleでJaCoCoのカバレッジレポートをフィルタリングする
質問
問題あり。
を持つプロジェクトがあります。 ジャココ で、特定のクラスやパッケージをフィルタリングできるようにしたいのです。
関連するドキュメント
以下のドキュメントを読みました。
公式 ジャココ のサイトをご覧ください。 http://www.eclemma.org/jacoco/index.html
公式 ジャココ のドキュメント グラドル : https://gradle.org/docs/current/userguide/jacoco_plugin.html
公式
ジャココ
Github
の問題で、カバレッジに取り組んでいます。
https://github.com/jacoco/jacoco/wiki/FilteringOptions
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"]
}
}
}
質問です。
を生成する際に、特定のパッケージやクラスを除外するにはどうすればよいですか? ジャココ カバレッジレポートを作成できますか?
解決方法は?
ありがとうございました。
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
古いバージョンのgradleの場合、5.xでは
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/**'])
})
}
}
関連
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
javaの実行中に「javaの例外が発生しました」と表示された場合はどうすればよいですか?
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
javaで非静的な解を静的な参照にすることができない
-
javaの模造品QQ WeChatのチャットルーム
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
linux run jarfile Invalid or corrupt jarfile error.
-
javaでクラスを作成すると、enclosing classでないように見える
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind
-
[解決済み] Android StudioのGradleとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java エラー報告 スレッド "main" での例外 java.util.NoSuchElementException
-
この行に複数のマーカーがある - HttpServletResponseが型エラーに解決できない
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした
-
このラインで複数のマーカーを解決する方法
-
[解決済み] Maven Jacoco 設定 - レポートからクラス/パッケージを除外することができません。