跳过特定构建类型的测试任务

时间:2017-08-14 17:47:32

标签: android gradle

我有4种不同的构建类型:

  • 释放
  • dev的
  • 模拟
  • 测试

当我想为我的项目做clean build任务时,我发现Gradle正在使用单元测试进行干净的构建。

没关系,但是每个构建类型都运行单元测试,干净构建需要4倍的时间。

如何仅针对发布构建类型进行单元测试clean build

1 个答案:

答案 0 :(得分:-1)

执行that没有什么好任务。所以你必须自己写。

尝试添加build.gradle旁边的

project.afterEvaluate {
  // Grab all build types and product flavors
  def buildTypes = android.buildTypes.collect { type -> type.name }
  def productFlavors = android.productFlavors.collect { flavor -> flavor.name }

  // When no product flavors defined, use empty
  if (!productFlavors) {
    productFlavors.add('')
  }

  productFlavors.each { productFlavorName ->
    buildTypes.each { buildTypeName ->
      def sourceName
      if (!productFlavorName) {
        sourceName = "${buildTypeName}"
      } else {
        sourceName = "${productFlavorName}${buildTypeName.capitalize()}"
      }
      def testTaskName = "test${sourceName.capitalize()}UnitTest"
      def assembleTaskName = "assemble${sourceName.capitalize()}"
      task "build${sourceName.capitalize()}"(dependsOn: ["$testTaskName", "$assembleTaskName"])
    }
  }

  task 'buildRelease'(dependsOn: tasks.findAll { t -> t.name.startsWith('build') && t.name != 'build' && t.name != 'buildNeeded' })
}