android - 如何将命令行上的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
. 但是有没有办法传递-Pcucumber
给gcloud 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
吗?
解决方案
推荐阅读
- node.js - MongoDB注入攻击
- sql - 当传递没有度量单位的字段名称值时,它会给出错误,那么如何解决?
- javascript - 如何使 js 脚本只运行一次/有限的时间?
- javascript - 翻译联系表格的占位符 / JQuery / JavaScript / 联系表格
- c++ - 使用 C++ 宏进行条件替换?
- python - 如何将我的 Python 应用程序部署为可分发包
- php - 如何在 PHP 中获取动态创建的输入字段的键
- ruby-on-rails - Ruby on Rails 4.1.8 Gem::LoadError for mysql2 gem
- c# - 读取具有未知字节大小的 TCP/IP 套接字流 C#
- javascript - Javascript函数innerText