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

标签 android gradle

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

  • 发布
  • dev
  • 模拟
  • 测试

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

    可以,但是每种构建类型都可以运行单元测试,而进行干净构建的时间要长4倍。

    如何仅对版本构建类型进行带有单元测试的clean build

    最佳答案

    要做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' })
    }
    

    关于android - 跳过特定构建类型的测试任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45680123/

    相关文章:

    java - 如何更改默认通知标题?

    Java/Gradle : Any tips on centralizing dependency version control for a multiple repository project?

    android - Gradle 尝试从错误的存储库下载

    java - "Android Gradle plugin requires Java 11 to run"发布jitpack库时

    java - 使用 SQLitestatement bindstring 方法代替简单的字符串连接来执行 sql 语句有什么优点

    android - 在 Activity 开始选项卡上在 android 中发送服务器请求?

    java - 单选按钮更改布局 Activity Android Studio

    Android gradle如何排除特定文件夹?

    java - Gradle -带 war 锉的耳锉

    android - Activity 的最低 SDK 版本支持