Starting March 27, 2025, we recommend using android-latest-release
instead of aosp-main
to build and contribute to AOSP. For more information, see Changes to AOSP.
Run automated tests (Android 11 or higher)
Stay organized with collections
Save and categorize content based on your preferences.
There are two options for running CTS automated tests:
Trade Federation is an app and test framework that lets you
run tests from the command line. Fundamentally, the framework
lets you annotate tests using the @Test
annotation and the app finds and runs
those tests.
OmniLab Android Test Station is an app that lets you run tests
in a GUI.
This page explains how to run automated tests using Trade Federation. For
instructions on running tests using OmniLab Android Test Harness, see
OmniLab Android Test Station.
Run all automated CTS tests
Trade Federation contains the CTS console, a command-line interface for
running tests. To run the entire automated CTS test suite:
- Ensure you have followed the instructions in Set up CTS automated testing.
On your test workstation, launch the CTS console by running the cts-tradefed
script from the folder where the CTS package has been unzipped:
./android-cts/tools/cts-tradefed
The CTS console displays a cursor for you to type CTS commands
(cts-tradefed >
).
The cts
test plan contains all of the automated CTS tests. Execute the
following command to run the cts
test plan:
run cts
The automated CTS tests execute. Note the following:
Android 13 and higher support multidevice testing. These tests run
automatically only when sharding is used. For further information on sharding,
see Improve test execution time. If you want to run these tests
manually, see Run multidevice tests.
Whenever running CTS, press ctrl+c to stop the existing CTS console
and then rerun the CTS console.
You can't run multiple CTS versions on single host because each opens
with an existing open location code (OLC) server.
View test results. For more information, see Interpret CTS results.
If this is your first test run, there might be tests that fail due to issues beyond your control. For example, a network connection might be slow or a GPS signal might be weak. Rerun (retry) the tests until all test modules are completed and the test failure numbers are the same between the last two retry sessions:
run retry --retry session_number`
After tests failures are consistent across retries, focus on debugging
the remaining failed tests. For information on troubleshooting test
results, see
Triage test failures
and
Troubleshoot CTS tests.
Run CTS for multiscreen devices
If your device is running Android 11 or 12, and your device has multiple
screens, you must run the cts-foldable
test plan separately:
run cts-foldable
Passed or failed test cases for alternate screen mode are appended with the
value from display_mode
, for example, testcase1[display_mode=0]
.
Run multidevice tests (Android 15 or lower)
Execute the following command to run the cts-multidevice
test plan:
run cts-multidevice
Run individual test plans
Instead of running all test plans at once, you can run individual test plans.
This option is useful to save time and to focus on a specific set of tests.
To run an individual test plan:
Identify the name of the test plan you want to run by executing the list modules
command.
Run the test plan:
run cts --plan test_module_or_plan_name
Improve test execution time
If you want to improve test execution time, you can shard tests across multiple
devices. Sharding requires the host to connect at least two devices, but six or
more devices are recommended for efficiency.
To shard tests on Android 11 or higher, run:
run cts --shard-count number_of_shards
Additionally, before running your tests for validation you can improve test
execution time by using the CTS run cts-dev
command. This command skips
preconditions, device-information collection, and all system status checkers.
It also runs the tests on only a single ABI.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-07-29 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-29 UTC."],[],[],null,["# Run automated tests (Android 11 or higher)\n\nThere are two options for running CTS automated tests:\n\n- *Trade Federation* is an app and test framework that lets you\n run tests from the command line. Fundamentally, the framework\n lets you annotate tests using the `@Test` annotation and the app finds and runs\n those tests.\n\n- *OmniLab Android Test Station* is an app that lets you run tests\n in a GUI.\n\nThis page explains how to run automated tests using Trade Federation. For\ninstructions on running tests using OmniLab Android Test Harness, see\n[OmniLab Android Test Station](/docs/core/tests/development/android-test-station/ats-user-guide).\n\nRun all automated CTS tests\n---------------------------\n\nTrade Federation contains the *CTS console*, a command-line interface for\nrunning tests. To run the entire automated CTS test suite:\n\n1. Ensure you have followed the instructions in [Set up CTS automated testing](/docs/compatibility/cts/setup).\n2. On your test workstation, launch the CTS console by running the `cts-tradefed` script from the folder where the CTS package has been unzipped:\n\n ./android-cts/tools/cts-tradefed\n\n The CTS console displays a cursor for you to type CTS commands\n (`cts-tradefed \u003e`).\n3. The `cts` test plan contains all of the automated CTS tests. Execute the\n following command to run the `cts` test plan:\n\n run cts\n\n The automated CTS tests execute. Note the following:\n - Android 13 and higher support multidevice testing. These tests run\n automatically only when sharding is used. For further information on sharding,\n see [Improve test execution time](#improve). If you want to run these tests\n manually, see [Run multidevice tests](#multi-device-testing).\n\n - Whenever running CTS, press **ctrl+c** to stop the existing CTS console\n and then rerun the CTS console.\n\n - You can't run multiple CTS versions on single host because each opens\n with an existing open location code (OLC) server.\n\n4. View test results. For more information, see [Interpret CTS results](/docs/compatibility/cts/interpret).\n\n5. If this is your first test run, there might be tests that fail due to issues beyond your control. For example, a network connection might be slow or a GPS signal might be weak. Rerun (retry) the tests until all test modules are completed and the test failure numbers are the same between the last two retry sessions:\n\n run retry --retry \u003cvar translate=\"no\"\u003esession_number\u003c/var\u003e`\n\n | **Note:** For implementation details for CTS retry, see [Use suite retry](/docs/core/tests/tradefed/testing/through-suite/suite-retry).\n | **Note:** For instructions on how to run a retry session on Android 10 or lower, see [Run CTS automated tests (AOSP 10 or lower)](/docs/compatibility/cts/run-older).\n6. After tests failures are consistent across retries, focus on debugging\n the remaining failed tests. For information on troubleshooting test\n results, see\n [Triage test failures](/docs/compatibility/cts/interpret#triaging-test-failures)\n and\n [Troubleshoot CTS tests](/docs/compatibility/cts/troubleshooting).\n\n| **Note:** For a list of all CTS console commands, see [CTS v2 command console](/compatibility/cts/command-console-v2).\n\nRun CTS for multiscreen devices\n-------------------------------\n\nIf your device is running Android 11 or 12, and your device has multiple\nscreens, you must run the `cts-foldable` test plan separately: \n\n run cts-foldable\n\nPassed or failed test cases for alternate screen mode are appended with the\nvalue from `display_mode`, for example, `testcase1[display_mode=0]`.\n| **Note:** For instructions on how to run the `cts-foldable` test plan for Android 10 or lower, see [Run CTS automated tests (Android 10 or lower)](/docs/compatibility/cts/run-older).\n\nRun multidevice tests (Android 15 or lower)\n-------------------------------------------\n\nExecute the following command to run the `cts-multidevice` test plan: \n\n run cts-multidevice\n\nRun individual test plans\n-------------------------\n\nInstead of running all test plans at once, you can run individual test plans.\nThis option is useful to save time and to focus on a specific set of tests.\nTo run an individual test plan:\n\n1. Identify the name of the test plan you want to run by executing the `list modules` command.\n\n | **Note:** For instructions on how to identify the module on Android 10 or lower, see [Run CTS automated tests (Android 10 or lower)](/docs/compatibility/cts/run-older).\n2. Run the test plan:\n\n run cts --plan \u003cvar translate=\"no\"\u003etest_module_or_plan_name\u003c/var\u003e\n\nImprove test execution time\n---------------------------\n\nIf you want to improve test execution time, you can shard tests across multiple\ndevices. Sharding requires the host to connect at least two devices, but six or\nmore devices are recommended for efficiency.\n\nTo shard tests on Android 11 or higher, run: \n\n run cts --shard-count \u003cvar translate=\"no\"\u003enumber_of_shards\u003c/var\u003e\n\nAdditionally, before running your tests for validation you can improve test\nexecution time by using the CTS `run cts-dev` command. This command skips\npreconditions, device-information collection, and all system status checkers.\nIt also runs the tests on only a single ABI."]]