【问题标题】:Skip test tasks for specific build types跳过特定构建类型的测试任务
【发布时间】:2018-01-22 14:57:15
【问题描述】:

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

  • 发布
  • 开发
  • 模拟
  • 测试

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

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

我怎样才能使clean build 只针对发布构建类型进行单元测试?

【问题讨论】:

    标签: android gradle


    【解决方案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' })
    }
    

    【讨论】:

    • 它不起作用。我写错了测试但是gradle说BUILD SUCCESSFUL
    • 啊等等,我读到你不想运行测试。但你确实做到了。
    • 更新答案,请查收
    猜你喜欢
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多