【发布时间】:2017-06-12 15:23:03
【问题描述】:
我如何迭代每个不同类型项目的测试结果并将其收集到一个报告中?
示例项目设置:
Root Project
|
|- Java Project
|- test task
|
|- Android Library Project (has Build Types)
|- testDebug task
|- testRelease task
|
|- Android application Project (has Product Flavors and Build Types)
|- testFreeDebug task
|- testFreeRelease task
|- testPaidDebug task
|- testPaidRelease task
我目前所拥有的:
这将汇总所有项目的所有测试结果:
task aggregateResults(type: Copy) {
outputs.upToDateWhen { false }
subprojects { project ->
from { project*.testResultsDir }
}
into { file("$rootDir/$buildDir/results") }
}
task testReport(type: TestReport) {
outputs.upToDateWhen { false }
destinationDir = file("$rootDir/$buildDir/reports/allTests")
subprojects { project ->
reportOn project.tasks.withType(Test)*.binResultsDir
}
}
参考资料:
仅适用于 Java:
task testReport(type: TestReport) {
destinationDir = file("$buildDir/reports/allTests")
reportOn subprojects*.test
}
来源:https://stackoverflow.com/a/16921750/950427
仅适用于 Android:
subprojects.each { subproject -> evaluationDependsOn(subproject.name) }
def testTasks = subprojects.collect { it.tasks.withType(Test) }.flatten()
task aggregateResults(type: Copy) {
from { testTasks*.testResultsDir }
into { file("$buildDir/results") }
}
来源:https://android.googlesource.com/platform/tools/build/+/nougat-release/build.gradle#79
【问题讨论】:
-
为什么这被否决了?
-
嗨!你找到解决办法了吗?
-
@ViktoriiaChebotar No
标签: android gradle android-gradle-plugin android-productflavors test-reporting