android - 将 Android 项目与 CircleCi 集成,仅使用 connectedAndroidTest 命令针对一种构建变体进行测试?

标签 android gradle continuous-integration circleci

我目前正在与 CircleCi 作斗争,因为我对它很陌生,所以有很多问题。现在我的应用程序需要 20 分钟来构建,因为它构建了我们拥有的每个 productFlavour。在我的 circle.yml 文件中,我有以下命令:

- ./gradlew --stacktrace connectedAndroidTest:
    timeout: 1200

完整的 circle.yml 文件会启动模拟器并干净地构建我们的 productFlavours 之一,称为 test。我可以通过运行以下命令轻松确保仅构建此 productFlavour:

 - ./gradlew clean assembleTestDebug -PdisablePreDex

构建过程大约需要 1 分钟。我现在的问题是 connectedAndroidTest 命令,该命令然后继续使用所有构建类型(发布和调试)构建我们所有的构建变体,然后针对它们运行我们的测试,这非常耗时。这就是为什么我们的构建时间需要 20 分钟。

有没有办法让我的 circle.yml 文件中的 connectedAndroidTest 命令只针对 TestDebug 运行?

我尝试将构建变体添加到末尾 (connectedAndroidTestTestDebug) 但这导致了 CircleCi 上的以下异常:

'connectedAndroidTestTestDebug' not found in root project 'my_project'.

非常感谢有关此事的任何建议,根据我的经验,CircleCi 的设置非常痛苦,我正在与他们的支持人员联系,但他们处于不同的时区,这并不理想,因此进展缓慢。我希望已经在 CircleCi 上通过单元测试设置了 Android 项目的人找到了一种方法,只针对一个 productFlavour/Build variant 运行它们。

提前感谢您的任何建议!

最佳答案

在 CircleCi 上运行带有构建变体的 connectedAndroidTest 适合我。

比如我在运行

- /gradlew connectedStagingMockDebugAndroidTest

您确定您的任务正确吗?检查使用

./gradlew tasks | grep connected

关于android - 将 Android 项目与 CircleCi 集成,仅使用 connectedAndroidTest 命令针对一种构建变体进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32247212/

相关文章:

android - 如何在 Android 中测量 FPS?

JAVA_HOME 目录不包含处理 Play 服务依赖项所需的 jar

c++ - 如何将 OpenCV 集成到 gradle 构建的 C++ 项目中

c - 为什么 travis-ci.org 总是显示 [ build : failing ] badge?

Azure Pipelines 矩阵变量

java - Android应用程序计算错误和崩溃

android - 如何在 fragment 中使用 PlaceAutoCompleteFragment 小部件

java - habarta typescript 插件无法加载类

groovy - Gradle - 动态构建多个发布

ios - 使用 Jenkins 在 IOS 中生成 gcda 文件以查看来自 XCTests 的代码覆盖率