我们在java项目jacoco中使用gradle-plugin来计算覆盖率。 问题是我们将从XML生成的类放在一个额外的项目中并将其解析为依赖项。我们希望这些模型类的代码库也能够分析它。检查我们是否在mapper类中使用了datacontainer的所有setter方法。是否可以选择模型项目中的代码覆盖率。
目前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:tests@jar')
testCompile('externalpackage:externalpackage-model:0.0.8:sources@jar')
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:sources@jar')
//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')
}
jar源包是这样的: (根)/ DE / myCompany的/.../ MyModelClasses.java
也许有人有想法
答案 0 :(得分:1)
自己找到它。问题是,你需要指定类的路径。
我将jar解压缩到build文件夹中,并将additionalClassDirs和additionalSourceDirs添加到报告作业中。
这是构建文件。
configurations {
externalClasses
externalSources
}
dependencies {
externalClasses "externalpackage:externalpackage-model:0.0.8@jar"
externalSources "externalpackage:externalpackage-model:0.0.8:sources@jar"
...
}
buildscript {
...
dependencies {
...
classpath 'externalpackage:externalpackage-model'
...
}
}
compile('externalpackage:externalpackage-model:0.0.8')
testCompile('externalpackage:externalpackage-model:tests@jar')
testCompile('externalpackage:externalpackage-model:0.0.8:sources@jar')
jacoco {
toolVersion = "0.7.6.201602180812"
reportsDir = file("$buildDir/customJacocoReportDir")
}
task unzipExternalModel(type: Copy){
from zipTree(configurations.externalSources.files.first())
into "$buildDir/tmp/externalSources"
from zipTree(configurations.externalClasses.files.first())
into "$buildDir/tmp/externalClasses"
}
jacocoTestReport {
dependsOn unzipExternalModel
reports {
xml.enabled true
csv.enabled true
html.enabled true
html.destination "${buildDir}/jacocoHtml"
}
additionalSourceDirs = files("$buildDir/tmp/externalSources")
additionalClassDirs = files("$buildDir/tmp/externalClasses")
}