- NAME
-
- gcloud firebase test ios run - invoke a test in Firebase Test Lab for iOS and view test results
- SYNOPSIS
-
-
gcloud firebase test ios run
[ARGSPEC
] [--device
=DIMENSION
=VALUE
,[…]] [--test
=XCTEST_ZIP
] [--timeout
=TIMEOUT
] [--type
=TYPE
] [--xcode-version
=XCODE_VERSION
] [--xctestrun-file
=XCTESTRUN_FILE
] [--app
=APP
] [--async
] [--client-details
=[KEY
=VALUE
,…]] [--num-flaky-test-attempts
=int
] [--record-video
] [--results-bucket
=RESULTS_BUCKET
] [--results-dir
=RESULTS_DIR
] [--results-history-name
=RESULTS_HISTORY_NAME
] [--test-special-entitlements
] [--filter
=EXPRESSION
] [--limit
=LIMIT
] [--page-size
=PAGE_SIZE
] [--sort-by
=[FIELD
,…]] [GCLOUD_WIDE_FLAG …
]
-
- DESCRIPTION
-
gcloud firebase test ios run
invokes and monitors tests in Firebase Test Lab for iOS.The currently supported iOS test frameworks are XCTest and XCUITest. Other iOS testing frameworks which are built upon XCTest and XCUITest should also work.
The XCTEST_ZIP test package is a zip file built using Apple's Xcode and supporting tools. For a detailed description of the process to create your XCTEST_ZIP file, see https://firebase.google.com/docs/test-lab/ios/command-line.
All arguments for
gcloud firebase test ios run
may be specified on the command line and/or within an argument file. Run$ gcloud topic arg-files
for more information about argument files. - EXAMPLES
-
To invoke an XCTest lasting up to five minutes against the default device
environment, run:
gcloud firebase test ios run --test=XCTEST_ZIP --timeout=5m
To invoke an XCTest against an iPad 5 running iOS 11.2, run:
gcloud firebase test ios run --test=XCTEST_ZIP --device=model=ipad5,version=11.2
To run your tests against multiple iOS devices simultaneously, specify the
--device
flag more than once:gcloud firebase test ios run --test=XCTEST_ZIP --device=model=iphone7 --device=model=ipadmini4,version=11.2 --device=model=iphonese
To run your XCTest using a specific version of Xcode, say 9.4.1, run:
gcloud firebase test ios run --test=XCTEST_ZIP --xcode-version=9.4.1
To help you identify and locate your test matrix in the Firebase console, run:
gcloud firebase test ios run --test=XCTEST_ZIP --client-details=matrixLabel="Example matrix label"
All test arguments for a given test may alternatively be stored in an argument group within a YAML-formatted argument file. The
ARG_FILE
may contain one or more named argument groups, and argument groups may be combined using theinclude:
attribute (Run$ gcloud topic arg-files
for more information). The ARG_FILE can easily be shared with colleagues or placed under source control to ensure consistent test executions.To run a test using arguments loaded from an ARG_FILE named
excelsior_app_args
, which contains an argument group namedios-args:
, use the following syntax:gcloud firebase test ios run path/to/excelsior_app_args:ios-args
- POSITIONAL ARGUMENTS
-
- [
ARGSPEC
] -
An ARG_FILE:ARG_GROUP_NAME pair, where ARG_FILE is the path to a file containing
groups of test arguments in yaml format, and ARG_GROUP_NAME is the particular
yaml object holding a group of arg:value pairs to use. Run
$ gcloud topic arg-files
for more information and examples.
- [
- COMMONLY USED FLAGS
-
--device
=DIMENSION
=VALUE
,[…]-
A list of
pairs which specify a target device to test against. This flag may be repeated to specify multiple devices. The device dimensions are:DIMENSION=VALUE
model
,version
,locale
, andorientation
. If any dimensions are omitted, they will use a default value. The default value, and all possible values, for each dimension can be found with the
command for that dimension, such aslist
$ gcloud firebase test ios models list
. Omitting this flag entirely will run tests against a single device using defaults for every dimension.Examples:
--device model=iphone8plus --device version=11.2 --device model=ipadmini4,version=11.2,locale=zh_CN,orientation=landscape
--test
=XCTEST_ZIP
-
The path to the test package (a zip file containing the iOS app and XCTest
files). The given path may be in the local filesystem or in Google Cloud Storage
using a URL beginning with
gs://
. Note: any .xctestrun file in this zip file will be ignored if--xctestrun-file
is specified. --timeout
=TIMEOUT
-
The max time this test execution can run before it is cancelled (default: 15m).
It does not include any time necessary to prepare and clean up the target
device. The maximum possible testing time is 45m on physical devices and 60m on
virtual devices. The
TIMEOUT
units can be h, m, or s. If no unit is given, seconds are assumed. Examples:-
--timeout 1h
is 1 hour -
--timeout 5m
is 5 minutes -
--timeout 200s
is 200 seconds -
--timeout 100
is 100 seconds
-
--type
=TYPE
-
The type of iOS test to run.
TYPE
must be one of:xctest
,game-loop
,robo
. --xcode-version
=XCODE_VERSION
-
The version of Xcode that should be used to run an XCTest. Defaults to the
latest Xcode version supported in Firebase Test Lab. This Xcode version must be
supported by all iOS versions selected in the test matrix. The list of Xcode
versions supported by each version of iOS can be viewed by running
$ gcloud firebase test ios versions list
. --xctestrun-file
=XCTESTRUN_FILE
-
The path to an .xctestrun file that will override any .xctestrun file contained
in the
--test
package. Because the .xctestrun file contains environment variables along with test methods to run and/or ignore, this can be useful for customizing or sharding test suites. The given path may be in the local filesystem or in Google Cloud Storage using a URL beginning withgs://
.
- FLAGS
-
--app
=APP
-
The path to the application archive (.ipa file) for game-loop testing. The path
may be in the local filesystem or in Google Cloud Storage using gs:// notation.
This flag is only valid when
--type
isgame-loop
orrobo
. --async
- Invoke a test asynchronously without waiting for test results.
--client-details
=[KEY
=VALUE
,…]-
Comma-separated, KEY=VALUE map of additional details to attach to the test
matrix. Arbitrary KEY=VALUE pairs may be attached to a test matrix to provide
additional context about the tests being run. When consuming the test results,
such as in Cloud Functions or a CI system, these details can add additional
context such as a link to the corresponding pull request.
Example:
--client-details=buildNumber=1234,pullRequest=https://example.com/link/to/pull-request
To help you identify and locate your test matrix in the Firebase console, use the matrixLabel key.
Example:
--client-details=matrixLabel="Example matrix label"
--num-flaky-test-attempts
=int
-
Specifies the number of times a test execution should be reattempted if one or
more of its test cases fail for any reason. An execution that initially fails
but succeeds on any reattempt is reported as FLAKY.
The maximum number of reruns allowed is 10. (Default: 0, which implies no reruns.) All additional attempts are executed in parallel.
--record-video
- Enable video recording during the test. Enabled by default, use --no-record-video to disable.
--results-bucket
=RESULTS_BUCKET
- The name of a Google Cloud Storage bucket where raw test results will be stored (default: "test-lab-<random-UUID>"). Note that the bucket must be owned by a billing-enabled project, and that using a non-default bucket will result in billing charges for the storage used.
--results-dir
=RESULTS_DIR
-
The name of a
unique
Google Cloud Storage object within the results bucket where raw test results will be stored (default: a timestamp with a random suffix). Caution: if specified, this argumentmust be unique
for each test matrix you create, otherwise results from multiple test matrices will be overwritten or intermingled. --results-history-name
=RESULTS_HISTORY_NAME
- The history name for your test results (an arbitrary string label; default: the bundle ID for the iOS application). All tests which use the same history name will have their results grouped together in the Firebase console in a time-ordered test history list.
--test-special-entitlements
-
Enables testing special app entitlements. Re-signs an app having special
entitlements with a new application-identifier. This currently supports testing
Push Notifications (aps-environment) entitlement for up to one app in a project.
Note: Because this changes the app's identifier, make sure none of the resources in your zip file contain direct references to the test app's bundle id.
- LIST COMMAND FLAGS
-
--filter
=EXPRESSION
-
Apply a Boolean filter
EXPRESSION
to each resource item to be listed. If the expression evaluatesTrue
, then that item is listed. For more details and examples of filter expressions, run $ gcloud topic filters. This flag interacts with other flags that are applied in this order:--flatten
,--sort-by
,--filter
,--limit
. --limit
=LIMIT
-
Maximum number of resources to list. The default is
unlimited
. This flag interacts with other flags that are applied in this order:--flatten
,--sort-by
,--filter
,--limit
. --page-size
=PAGE_SIZE
-
Some services group resource list output into pages. This flag specifies the
maximum number of resources per page. The default is determined by the service
if it supports paging, otherwise it is
unlimited
(no paging). Paging may be applied before or after--filter
and--limit
depending on the service. --sort-by
=[FIELD
,…]-
Comma-separated list of resource field key names to sort by. The default order
is ascending. Prefix a field with ``~´´ for descending order on that
field. This flag interacts with other flags that are applied in this order:
--flatten
,--sort-by
,--filter
,--limit
.
- GCLOUD WIDE FLAGS
-
These flags are available to all commands:
--access-token-file
,--account
,--billing-project
,--configuration
,--flags-file
,--flatten
,--format
,--help
,--impersonate-service-account
,--log-http
,--project
,--quiet
,--trace-token
,--user-output-enabled
,--verbosity
.Run
$ gcloud help
for details. - NOTES
-
These variants are also available:
gcloud alpha firebase test ios run
gcloud beta firebase test ios run
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-02-06 UTC.