我在Android Studio的AndroidTests目录下有一些安卓设备测试。当然,我可以手动执行这些测试,但我需要在每次构建后执行套件中的所有测试("release"类型的构建,而不是普通的调试构建)。我需要这样做,因为我希望在发布新应用的apk之前通过测试来验证新代码的准确性。如何实现呢?我尝试了谷歌搜索,但还没有找到合适的解决方案。
有什么想法吗?
我在Android Studio的AndroidTests目录下有一些安卓设备测试。当然,我可以手动执行这些测试,但我需要在每次构建后执行套件中的所有测试("release"类型的构建,而不是普通的调试构建)。我需要这样做,因为我希望在发布新应用的apk之前通过测试来验证新代码的准确性。如何实现呢?我尝试了谷歌搜索,但还没有找到合适的解决方案。
有什么想法吗?
我终于成功了。我已经将以下配置添加到我的Android Studio项目的build.gradle文件中:
// execute android tests before realising a new apk
tasks.whenTaskAdded { task ->
if (task.name == 'assembleRelease')
task.dependsOn('connectedAndroidTest')
}
android {
signingConfigs {
release {
keyAlias 'key'
keyPassword 'password'
storeFile file('/path/to/release_keystore.jks')
storePassword 'password'
}
}
buildTypes {
debug {
signingConfig signingConfigs.release
}
release {
signingConfig signingConfigs.release
}
}
在完成这个步骤后,当构建发布版 APK 时我能够运行所有的 Android 测试。如果测试失败,则不会构建任何 APK。
通常情况下,您可以使用dependsOn
方法为任务定义依赖关系。
例如:
task A << {
println 'Hello from A'
}
task B << {
println 'Hello from B'
}
B.dependsOn A
> gradle -q B
Hello from A
Hello from B
assemble.dependsOn test
如果您只想为发布版本指定依赖项:
assembleRelease.dependsOn test
connectedAndroidTest
命令在连接的模拟器或设备上运行测试。test
命令在本地主机上运行单元测试。我认为你应该深入研究一个特定的主题:持续集成
。
这将允许您在每次构建或提交后运行测试套件、构建变体、在Google Play上发布等等...从经典的Jenkins CI
开始,它可能不是最精致和易于使用的,我的意思是用户友好的工具,但与Travis
或Circle CI
相比,它提供了巨大的配置可能性,良好的应用程序社区,并且是免费使用的。
从这篇文章开始:http://www.vogella.com/tutorials/Jenkins/article.html
其他工具:我已经在我的Github
项目中使用Travis
,但Circle CI
或Green House CI
也可能是不错的选择。
希望这能帮到你