我們在我們的java項目jacoco中使用gradle插件來計算覆蓋率。 問題是我們把從XML中生成的類放在一個額外的項目中,並將其解析爲依賴項。我們也希望這些模型類的代碼覆蓋率也能分析它。檢查我們是否在映射類中使用了數據容器的所有setter方法。模型項目中的代碼覆蓋不是一種選擇。在jacoco報告中顯示jar包中的外部源
目前jacoco只在報表(html/xml/csv)中顯示我們的主類中的類,而不是外部的jar類。當我用eclipse或intellij加載時,jacoco會話包含覆蓋數據。
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')
}
罐子源包是這樣的: (根)/ DE/myCompany的/.../ MyModelClasses.java
也許有人具有
您正在討論將_「我們的類從**生成的**」放入jacoco-report中。通常,你想從所有類型的代碼分析中排除生成的類,因爲如果它生成了,即使覆蓋率很低,也不能改變任何東西。而且:生成的類通常只是數據容器,並且不提供任何邏輯 - 測試(並從中計算覆蓋範圍)getter/setter用處不大。 – Andy
這是正確的,數據類不需要測試。但是對這個問題的要求有點不同。我們需要驗證所有的測試都使用這些數據容器的setter方法。有了這個我們想驗證我們並沒有忘記在映射類中設置任何字段。 –