gpt4 book ai didi

groovy - Gradle:如何配置 buildSrc 或从主项目跳过测试?

转载 作者:行者123 更新时间:2023-12-01 02:20:25 25 4
gpt4 key购买 nike

我在 buildSrc 构建中有一些相当长的测试,有时我想在开发过程中跳过这些测试,以查看模板更改的效果。它是一个报告生成器,有时我只想调整模板而不必更新所有测试;然后当我对输出感到满意时我会更新它们。

我能够使用以下配置在 buildSrc build.gradle 中实现跳过测试:

test {
// skip all tests if gradle run with -Pnotests
try { if (project.ext.notests != null)
println "skipping tests"
exclude '**'
} catch (MissingPropertyException e) {}
}

(如果您有更好的方法来检测可选参数,我很乐意看到它)

但是,这不适用于主 gradle 项目。我已经尝试了所有我能想到的方法来尝试通过配置传递参数,而没有设置环境变量,但我怀疑这是否可行。

一般来说,我发现我无法从主项目中配置 buildSrc。我找不到任何获取变量的方法,例如 project.ext.foo 或 ext.foo,也找不到配置 buildSrc 'project' 的方法,因为 main build.gradle 中没有任何部分。它就像存在于一个自己的岛屿上。我试过了:
  • project.ext.notes = true
  • 测试 {...} 在主
  • 所有项目 { 测试 {...} }
  • 子项目 { 测试 {...} }
  • 依赖项 { 测试 {...} }
  • buildscript { 测试 {...} }

  • 有没有办法解决这个问题,或者我是否必须重构我的整个项目以将报告代码移到其他地方,然后我可以配置它并跳过测试?

    提前致谢。

    最佳答案

    buildSrc是一个单独的构建(不是项目),我不知道在触发主构建时有什么方法可以影响它的执行。 (请注意,构建 buildSrc 是评估主构建的构建脚本的先决条件。)我能想到的一些解决方案:

  • 无条件禁用 buildSrc根据需要进行测试(例如通过在 test.disabled = true 中设置 buildSrc/build.gradle )
  • 分解buildSrc进入单独的构建
  • 更改测试,使其对模板更改不敏感
  • 将对模板更改敏感的测试移到单独的 Test 中仅手动触发的任务

  • PS:从命令行跳过构建测试的最简单方法是 -x test .项目属性的存在 foo可以用 project.hasProperty("foo") 检测到.

    关于groovy - Gradle:如何配置 buildSrc 或从主项目跳过测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20897176/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com