Max*_*ell 21 android gradle android-gradle-plugin
我有一个包含三种不同构建类型的项目:debug,beta和release.我的测试包总是为调试版本创建,但QA使用beta版本,我们希望QA在其大量设备上运行这些测试.
我正在尝试为QA创建一个测试apk,它由与beta版本相同的密钥签名.通过Android-Gradle文档,我没有看到任何告诉我我不能这样做的东西,但我不认为无论如何配置它.无论如何我可以配置组装测试apk时使用哪个密钥库?或者有没有办法创建一个未签名的测试apk?
JRa*_*ond 47
您现在可以将此指向另一个目标,我不知道何时发生这种情况,但是来自文档:
目前只测试了一种构建类型.默认情况下,它是调试构建类型,但可以使用以下命令重新配置:
Run Code Online (Sandbox Code Playgroud)android { ... testBuildType "staging" }
Sco*_*rta 14
这是对你的问题的一个不完整的答案,因为它记录了你不能做的事情,但是在你的项目中connectedAndroidTest运行androidTest测试的任务是硬编码来运行debug构建类型,我没有看到一种方法将其指向不同的构建类型.
接受建议是否有办法在Gradle中列出任务依赖?并检查任务依赖树,如果您运行:
./gradlew tasks --all
Run Code Online (Sandbox Code Playgroud)
你在输出中得到这个:
Verification tasks
------------------
app:check - Runs all checks. [app:lint]
app:connectedAndroidTest - Installs and runs the tests for Build 'debug' on connected devices. [app:assembleDebug, app:assembleDebugTest]
app:connectedCheck - Runs all device checks on currently connected devices. [app:connectedAndroidTest]
app:deviceCheck - Runs all device checks using Device Providers and Test Servers.
Run Code Online (Sandbox Code Playgroud)
该connectedAndroidTest任务的文档声称它运行测试debug,并且任务依赖项(您使用该-all标志看到)确认该任务依赖于assembleDebug.
添加其他构建类型和风格似乎不会影响对内置debug类型的依赖性.
有可能使用比我更大的Gradle-fu,你可以重新连接任务以使测试依赖于不同的构建类型,但这样做很可能是脆弱的,因为它必然依赖于不支持API的东西. Android Gradle插件.
但是,要最直接地回答您的问题,如果您只想对具有不同证书的构建运行测试,则可以更改debug构建上的签名配置以使用beta证书:
android {
signingConfigs {
beta {
keyAlias 'key'
keyPassword 'password'
storeFile file('/path/to/beta_keystore.jks')
storePassword 'password'
}
}
buildTypes {
debug {
signingConfig signingConfigs.beta
}
beta {
signingConfig signingConfigs.beta
}
}
}
Run Code Online (Sandbox Code Playgroud)
我测试了它,我能够以这种方式对使用自定义密钥库的调试版本运行androidTest目标.但是,我怀疑这可以解决您的问题,因为我怀疑您希望针对beta 版本运行测试,而不是使用beta 证书进行调试构建.
| 归档时间: |
|
| 查看次数: |
8012 次 |
| 最近记录: |