del*_*lor 5 gradle jacoco gradle-kotlin-dsl
在Gradle Groovy中,我正在使用
task jacocoRootReport(type: JacocoReport) {
dependsOn = subprojects.test
subprojects.each {
sourceSets it.sourceSets.main
}
executionData.from fileTree(project.rootDir.absolutePath).include("**/build/jacoco/*.exec")
reports {
html.enabled = true
xml.enabled = true
csv.enabled = false
}
}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将其转换为Kotlin DSL,这样子项目的Jacoco结果将汇总到根项目中的一个报告中。
我建议配置和使用现有任务,jacocoTestReport因为它已经预定义了源集。
我必须做的最小更改是添加:
tasks.jacocoTestReport {
reports {
xml.isEnabled = true
}
dependsOn(allprojects.map { it.tasks.named<Test>("test") })
}
Run Code Online (Sandbox Code Playgroud)
并且报告是在build\reports\jacoco\test\jacocoTestReport.xml.
如果你真的需要定义你自己的任务,你可以像jacocoTestReport任务一样聚合源集:
sourceSets(project.extensions.getByType(SourceSetContainer::class.java).getByName("main"))
Run Code Online (Sandbox Code Playgroud)
(来自gradle-6.2\src\jacoco\org\gradle\testing\jacoco\plugins\JacocoPlugin.java#addDefaultReportTask)
最终代码可能如下所示:
sourceSets(project.extensions.getByType(SourceSetContainer::class.java).getByName("main"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
370 次 |
| 最近记录: |