[英]How to execute Android Tests with gradle before each “release” build?
我在Android Studio的AndroidTests目录下有一些android检测测试。 当然我可以手动执行测试但是我需要在每次构建之后执行套件中的所有测试(“发布”类型的构建,而不是在正常的调试构建期间)。 我需要这样做,因为我想在发布新应用程序的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
在本地主机上运行单元测试。
我认为你应该深入研究某个话题: Continuous Integration
。
这将允许您在每次构建或提交后运行测试套件,构建变体,在Google Play上发布等等...从经典的Jenkins CI
开始,这可能不是最精致和易于使用的,我的意思是用户友好工具,但与Travis
或Circle CI
相比,它提供了巨大的配置可能性,不错的应用程序社区,并且可以免费使用。
从这篇文章开始: http : //www.vogella.com/tutorials/Jenkins/article.html
其他工具:我已经将Travis
用于我的Github
项目,但Circle CI
或Green House CI
也可能是不错的选择。
希望它会有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.