【问题标题】:How to build a release test apk for Android with Gradle?如何使用 Gradle 为 Android 构建发布测试 apk?
【发布时间】:2017-02-03 20:16:32
【问题描述】:

我知道,使用 Gradle 命令 assembleAndroidTest 我可以构建一个测试 APK。 但是我只能将此测试 APK 用于我的应用程序的调试版本,对吗?如果我在发布版本中使用它,我会收到类似 "[SDR.handleImages] Unable to find test for com.xxx.xxx (packagename)"

的错误消息

如何使用 Gradle 在发布模式下构建测试 APK?

【问题讨论】:

  • 你试过改变构建变量吗?你做了 realse buil 变种吗?
  • 我使用 Jenkins 来构建应用程序 apk 和测试 apk。我没有构建变体。我使用assembleRelease 构建应用apk 和assembleAndroidTest 构建测试apk。然后我使用 Spoon runner 在设备上执行测试。但这仅在使用调试应用程序 apk 时有效。如果应用 apk 是发布版本,则无法执行测试。
  • 我也遇到了同样的问题,你解决了吗?
  • 为什么要测试 APK?
  • @blackHawk Firebase Test Lab for Android at Google Play 允许在物理和虚拟设备上启动 Android 仪器测试。但它要求“App apk”和“Test apk”都由相同的发布密钥签名。

标签: android testing gradle


【解决方案1】:

将此行添加到您的defaultConfig

android {
    defaultConfig {
        ...
        testBuildType System.getProperty('testBuildType', 'debug')
     }
}

现在您可以运行以下命令来获取测试 apk 的发布版本

./gradlew assembleAndroidTest -DtestBuildType=release

【讨论】:

  • 哇,简直太棒了。我不知道我们可以在这里使用 System.getProperty。我必须在 gradle 属性中使用一个变量,但它无法在不同的 gradle 命令中更改它。
【解决方案2】:

要首先从 gradle 构建发布测试 apk,您需要在 build.gradle 文件中添加以下测试配置:

android {
    ..
    ..
    buildTypes {
      release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-test-rules.pro'
        signingConfig signingConfigs.release
      }
    }
    testBuildType "release"
}

在此之后,您将开始看到assembleReleaseAndroidTest 命令。通过它您可以在发布版本上运行测试。

在此过程中您可能还需要创建一个proguard-test-rules.pro 文件,用于测试proguard 规则

【讨论】:

    【解决方案3】:

    你也可以试试

    if (project.hasProperty('androidTestRelease')) {
            testBuildType 'release'
        }else {
            testBuildType 'debug'
        }
    

    要在发布版本中运行测试,只需添加

    -PandroidTest
    

    听从你的命令

    【讨论】:

      【解决方案4】:

      您可以创建一个 Flavor 来实现这一点。

      【讨论】:

      • 你能详细说明你的答案吗?
      猜你喜欢
      • 2013-08-22
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多