2015-10-30 167 views
3

我正在寻找一种方式跳过测试多项目项目中的项目之一。我不想使用gradle build -x测试,因为那样它将跳过所有子项目的测试。Gradle跳过测试

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

我想跳过测试只为 “子P3”

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

+1

尝试:'gradle -x:subp3:test'? – Opal

+0

我认为最好的方法是禁用在线数据,然后在需要时手动更新。 Android studio:设置>构建,执行,部署>构建工具> Gradle>标记选项“使用本地gradle分布”。 你的应用程序将更快地建立方式 – CarlosCarucce

+0

@Opal:它的工作。但试图在根级上使用“gradle build”。在构建文件中有一些可配置的内容会非常有帮助。 –

回答

4

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

第2个是:使用谓词和异常抛出。谓词在配置阶段解决,可能不会传递到您的要求。 StopExecutionExeption投掷可能被添加到每个测试的doFirst并根据某些条件投掷。似乎不是很清楚的位,因为您必须修改根脚本以设置条件,并且子项目会拦截测试任务。

第三个是 - 禁用任务。每个任务都有一个enabled属性(默认值为true),如果将其设置为false,则会阻止任务执行。您只需要在您的子项目中为测试任务设置此属性。这可以分项目进行BUIL脚本根,如:

test.enabled = false 

这将工作,如果没有指定自定义的测试任务,如果你这样做,你可以通过任务类型禁用所有的测试,如:

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

预览2个配置必须包含的子项目的生成脚本,但因为你有一个根项目,您可以通过project()配置subprojecst从它的构建脚本,提供子项目的名字:

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