【问题标题】:Gradle Skip TestGradle 跳过测试
【发布时间】:2015-10-30 10:45:33
【问题描述】:

我正在寻找一种从 多构建项目 中的一个项目中跳过测试的方法。我不想使用 gradle build -x test 因为它会跳过所有子项目的测试。

  • 子 P1
    • build.gradle
  • 子 P2
    • build.gradle
  • 子 P3
    • build.gradle
  • build.gradle
  • settings.gradle

我只想跳过“Sub P3”的测试

我可以配置我的项目(Sub P3)构建文件以跳过测试吗?

【问题讨论】:

  • 试试:gradle -x :subp3:test ?
  • 我认为最好的方法是禁用在线验证,然后在需要时手动更新。 Android 工作室:设置 > 构建、执行、部署 > 构建工具 > Gradle > 标记选项“使用本地 gradle 分发”。您的应用构建速度会更快
  • @Opal:成功了。但是尝试在根级别仅使用“gradle build”。在构建文件中有一些可配置的东西真的很有帮助。
  • @CarlosAlbertoB.Carucce:我们正在 travis 构建完整的项目。因此,只能编写脚本来触发构建。

标签: android gradle android-gradle-plugin build.gradle


【解决方案1】:

由于official user guide,在 gradle 中有 3 种方法可以跳过某些任务。

前2个,分别是:使用谓词和抛出异常。谓词在配置阶段解决,可能无法满足您的要求。 StopExecutionExeptionthrowing 可以添加到每个测试的doFirst 中,并根据某些条件进行抛出。这似乎不是很清楚,因为您必须修改根脚本以设置条件和子项目脚本测试任务。

第三个是 - 禁用任务。每个任务都有一个enabled 属性(默认为true),如果它被设置为false,它会阻止任务执行。您唯一需要做的就是在您的子项目中为测试任务设置此属性。这可以在子项目构建脚本根目录中完成,如:

test.enabled = false

如果您没有指定自定义测试任务,这将起作用,如果您这样做了,您可以按任务类型禁用所有测试,如下所示:

project(':subProject').tasks.withType(Test){
    enabled = false
}

Previews 2 配置必须包含在子项目的构建脚本中,但由于您有一个根项目,您可以从它的构建脚本中配置子项目,通过project() 提供子项目的名称:

project(':subProject').tasks.withType(Test){
    enabled = false
}

【讨论】:

    【解决方案2】:

    对于 android,gradle 中没有可用的 test 任务

    要在 android 中跳过单元测试,你必须这样做

    android {
    .
    .
    .
        testOptions {
            unitTests.all {
               enabled false
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-01-04
      • 2015-01-15
      • 2023-03-19
      • 2023-03-24
      • 2014-09-03
      • 2021-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多