【问题标题】:gradle: aggregating multiproject testReport with some test disabledgradle:聚合多项目测试报告,禁用一些文本
【发布时间】:2013-06-05 22:23:03
【问题描述】:

我想在我的多项目构建中汇总测试报告。我有一个项目结构,其中禁用了一些测试。我已经查看了gradle sample code,它在默认设置下运行良好,但是一旦我在子项目上禁用测试任务,它就会停止工作。 (它会查找显然不存在的 testresult/*.bin 文件..)

我的项目布局如下:

root 
 +--- ProjectA
 |    \--- ProjectA.gradle
 +--- ProjectB
 |    \--- ProjectB.gradle
 \--- build.gradle

ProjectA.gradle 看起来像这样:

test {
   enabled = false
}

rootprojects build.gradle 有 testReport 任务。

正如我之前所说,ProjectA 上的任务失败。我尝试像这样修改示例代码:

task testReport(type: TestReport) {
    destinationDir = file("$buildDir/reports/allTests")
    reportOn subprojects*.test.findAll { test ->
        test.getEnabled()
    }
}

仍然无法正常工作,因为任务执行时 test.enabled 为 true。

我怎样才能完成这项任务?

【问题讨论】:

    标签: build gradle automated-tests


    【解决方案1】:

    它会查找显然不存在的 testresult/*.bin 文件

    可能值得在http://forums.gradle.org 报告错误。

    仍然无法正常工作,因为任务执行时 test.enabled 为 true。

    事实上,testReport 任务执行时是 false,但配置时是 true。 (Gradle 具有不同的配置和执行阶段。)这是因为默认情况下,父项目构建脚本会在子项目构建脚本之前进行评估。解决此问题的一种方法是将testReport 任务的声明移动到父构建脚本的底部,并在其之前添加evaluationDependsOnChildren()

    【讨论】:

    猜你喜欢
    • 2013-05-31
    • 1970-01-01
    • 2018-09-09
    • 2017-06-12
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    相关资源
    最近更新 更多