我目前正在与 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/