Environment Variables in Test
Important
Visual Studio App Center is scheduled for retirement on March 31, 2025. While you can continue to use Visual Studio App Center until it is fully retired, there are several recommended alternatives that you may consider migrating to.
When testing, it's often helpful to launch your application or test runner with custom environment variables set. For example, environment variables can be used to control the behavior of your application or provide tests with sign-in information.
For most frameworks, useful environment variables are available within the test, application, or both. You can set additional environment variables via the App Center CLI.
Support by framework
In App Center, some frameworks and platform combinations support setting and using custom environment variables as well as using variables that are made available to your application and tests automatically (for example RUNNING_IN_APP_CENTER
and APP_CENTER_TEST
).
This table lists environment variables supported for each framework or platform:
Framework | Test Environment Variables | Application Environment Variables |
---|---|---|
Appium | Available | Not Available |
Calabash | Available | Available in iOS only |
Espresso | Available | Available |
Xamarin.UITest | Available | Available in iOS only |
XCUITest | Not Available | Not Available |
Note
In Espresso tests and Android applications, variables are available in the InstrumentationRegistry
since Android doesn't support environment variables.
Environment variables available in your application
For supported frameworks, these environment variables are available within the application:
Environment Variable | Description |
---|---|
RUNNING_IN_APP_CENTER |
Set to 1 when the device is running in App Center Test |
Environment variables available in your tests
For supported frameworks, these environment variables are available within the tests:
Environment Variable | Description |
---|---|
APP_CENTER_TEST |
Set to 1 when your tests run in App Center Test. |
XTC_APP_ENDPOINT |
Address of a secure port on the device that allows other services to communicate with the application. Used by applications that embed their own HTTP servers in an application and need to interact with the app outside of the test framework. (Android Only). Example: http://devicehost151.prod:37777/proxy2/token-c059c5c6-37cc-4400-9038-96d1d342ed6e/ |
XTC_DEVICE |
Combines the operating system name and the device name. Example: Google Pixel 2 XL (8.1.0) |
XTC_DEVICE_INDEX |
A string in the range of 0 to N-1, where N is the number of devices the test is run on. Used in situations where the same test is being run in parallel on multiple devices. XTC_DEVICE_INDEX is unique for each test run for each device. For additional discussion, see: Handling Concurrent Database Changes During Tests. |
XTC_DEVICE_NAME |
Name of the device running the test. Example: Google Pixel 2 XL |
XTC_DEVICE_OS |
Name of the operating system for the device running the test. Example: 8.1.0 |
XTC_LANG |
Language code used to run the test. Example: en |
XTC_PLATFORM |
Platform under test, either android or ios . |
Setting additional environment variables
When you upload your tests to App Center with the CLI, you can request environment variables be set using the --test-parameter
option. Environment variables can be set for test runner and for your application (the application under test or AUT).
Note
See Support by framework for details of which frameworks support test and application variables in App Center Test.
Environment variables for your tests
$ appcenter test run < > \
< args > \
--test-parameter "test_env=USERNAME=clever_user@example.com" \
--test-parameter "test_env=PASSWORD=pa$$w0rd" \
--test-parameter "test_env=TWO_FACTOR_URL=https://staging.example.com/test-2FA" \
--test-parameter "test_env=UPGRADE_PURCHASED=0"
Environment variables for your application
$ appcenter test run < > \
< args > \
--test-parameter "app_env=VERBOSE_LOGGING=1" \
--test-parameter "app_env=CONTENT_SERVER=staging.example.com \
--test-parameter "app_env=API_LEVEL=3.2" \
--test-parameter "app_env=UPGRADE_PURCHASED=0"
Using environment variables in your tests
Sample Appium test code:
The following code snippet shows how to access environment variables in App Center Test using Appium
String appCenterTest = System.getenv("APP_CENTER_TEST");
Sample Calabash test code:
The following code snippet shows how to access environment variables in App Center Test using Calabash
app_center_test = ENV["APP_CENTER_TEST"]
Sample Espresso test code
Since Android doesn't support environment variables, App Center Test sets InstrumentationRegistry
values instead for Espresso. The following code snippet shows how to access the InstrumentationRegistry
values.
String appCenterTest = InstrumentationRegistry.getArguments().getString("APP_CENTER_TEST");
Sample Xamarin.UITest test code
The following code snippet shows how to access environment variables in App Center Test using Xamarin.UITest:
string appCenterTest = Environment.GetEnvironmentVariable("APP_CENTER_TEST");
Using environment variables in your application
Sample native Android application code
Note
See Support by framework for details of which frameworks support application variables in App Center Test.
Since Android doesn't support environment variables, App Center Test sets InstrumentationRegistry
values instead. The following code snippet shows how to access the InstrumentationRegistry
values.
String runningInAppCenter = InstrumentationRegistry.getArguments().getString("RUNNING_IN_APP_CENTER");
Sample native iOS application code
Note
See Support by framework for details of which frameworks support application variables in App Center Test.
Native iOS applications access environment variables through the NSProcessInfo API.
[[NSProcessInfo processInfo] environment]["RUNNING_IN_APP_CENTER"]
ProcessInfo.processInfo.environment["RUNNING_IN_APP_CENTER"]
Getting help
You can contact support in the App Center portal. In the upper right corner of screen, select the Help (?) menu, then choose 'Contact support'. Our dedicated support team will respond to your questions.
If you want help with a test run, navigate to the test run in question and copy the URL from your browser and paste it into the support conversation. A test run URL looks like something like https://appcenter.ms/orgs/OrgName/apps/App-Name/test/runs/77a1c67e-2cfb-4bbd-a75a-eb2b4fd0a747.