繁体   English   中英

如何在每次“发布”构建之前使用gradle执行Android测试?

[英]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开始,这可能不是最精致和易于使用的,我的意思是用户友好工具,但与TravisCircle CI相比,它提供了巨大的配置可能性,不错的应用程序社区,并且可以免费使用。

从这篇文章开始: http//www.vogella.com/tutorials/Jenkins/article.html

其他工具:我已经将Travis用于我的Github项目,但Circle CIGreen House CI也可能是不错的选择。

希望它会有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM