Javaプロジェクトjacocoでgradle-pluginを使用してカバレッジを計算します。 問題は、XMLから生成されたクラスを追加のプロジェクトに入れて、それを依存関係として解決したことです。我々は、これらのモデルクラスのコードコーデックも分析することを望んでいます。私たちのマッパークラスでdatacontainersのすべてのセッターメソッドを使用したかどうかを確認する。モデルプロジェクトのコードカバレッジはオプションではありません。jacocoレポートのjarパッケージからの外部ソースを表示
現在、jacocoは主なプロジェクトにあるが外部ジャーのクラスではないクラスのみをレポート(html/xml/csv)に表示します。 jacocoセッションには、eclipseまたはintellijでロードするときのカバレッジデータが含まれています。
buildscript {
...
dependencies {
...
classpath 'externalpackage:externalpackage-model'
...
}
}
compile('externalpackage:externalpackage-model:0.0.8')
testCompile('externalpackage:externalpackage-model:[email protected]')
testCompile('externalpackage:externalpackage-model:0.0.8:[email protected]')
jacoco {
toolVersion = "0.7.6.201602180812"
reportsDir = file("$buildDir/customJacocoReportDir")
}
jacocoTestReport {
reports {
xml.enabled true
csv.enabled true
html.enabled true
html.destination "${buildDir}/jacocoHtml"
}
additionalSourceDirs files('externalpackage:externalpagage:0.0.8:[email protected]')
//Doesn't work either
//additionalSourceDirs files('C:/Users/sero/Downloads/test/externalpackage-0.0.8-sources')
//additionalSourceDirs = files('C:/Users/sero/Downloads/test/externalpackage-0.0.8-sources/de/mycompany/.../MyModelClasses.java')
}
ジャーソースパッケージはこのようなものです: (ルート)/デ/ mycompanyの/.../ MyModelClasses.java
はたぶん誰かがアイデア自分でそれを見つけた
あなたは、「XMLから生成された**私たちのクラス」を「jacoco-report」に入れています。通常は、生成されたクラスをすべての種類のコード解析から_exclude_する必要があります。生成された場合、カバレッジが低くても何も変更できないからです。そして、生成されたクラスは通常、データコンテナだけであり、ロジックを提供しません。getter/setterからのテスト(およびカバレッジの計算)はあまり役に立ちません。 – Andy
データクラスをテストする必要はないというのは正しいことです。しかし、この問題の要件は少し異なります。すべてのテストでこれらのデータコンテナのsetterメソッドを使用していることを検証する必要があります。これで、マッパークラスにフィールドを設定することを忘れていないことを検証したいと考えています。 –