首页 > 解决方案 > 如何将命令行上的gradle项目设置传递给gcloud firebase test android run

问题描述

我正在尝试在 Google Firebase 测试实验室上运行 Cucumber 测试,但我无法弄清楚如何将 Gradle 项目设置传递给gcloud firebase test android run命令。

作为背景,教程Android BDD with Cucumber and Espresso — 完整指南很好地解释了如何为 Android 项目设置 Cucumber 并在本地运行,如下所示:

./gradlew connectedAndroidTest -Pcucumber

-Pcucumber标志在模块级 build.gradle 文件AndroidJUnitRunner之间切换:CucumberTestRunner

def getInstrumentation() {
    project.hasProperty('cucumber') ?
            'com.teadate.bdd.cucumber.runner.CucumberTestRunner' :
            'androidx.test.runner.AndroidJUnitRunner'
}

android {
    // ...
    defaultConfig {
        // ...
        testInstrumentationRunner getInstrumentation()
    }
}

传递cucumber标志的一种可能方法是将其添加到我的 gradle.properties 文件(我从这篇文章中发现):

添加到 gradle.properties:

cucumber

我很确定这会起作用,因为它确实会导致./gradlew connectedAndroidTest使用CucumberTestRunner而不是AndroidJUnitRunner. 但是有没有办法传递-Pcucumbergcloud firebase test android run

我读过它gcloud firebase test android run允许您使用参数传递环境变量[--environment-variables](https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run#--environment-variables),但是,我认为它不会将它们用作 gradle 项目设置,因为它将它们传递给am instrument命令和/或测试运行器:

环境变量被镜像为 am instrument -e KEY1 VALUE1 … 命令的额外选项,并传递给您的测试运行程序(通常是 AndroidJUnitRunner)。

就我而言,我正在尝试使用该-Pcucumber标志来配置要调用的测试运行器。因此,我需要在测试运行器甚至已知之前使用的标志。

解决此问题的方法可能是通过传递--test-runner-classgcloud firebase test android run来告诉使用特定的测试运行器。但是,如果该解决方案有效,则仅适用于这种特殊情况。如果我的 gradle 项目设置不能作为参数使用怎么办?gcloud firebase test android run

最后,有人问了一个关于通过 Jenkins 将参数传递给 gcloud 应用程序的类似问题,但这与 gradle 项目设置无关,它只是关于将值传递给gcloud firebase test android run参数的语法,即--device

我可以将命令行上的 gradle 项目设置传递给gcloud firebase test android run吗?

标签: androidgradleandroid-gradle-plugincucumberfirebase-test-lab

解决方案


推荐阅读