В этом разделе объясняется, как запускать тесты Trade Federation и вносить в них вклад после внесения изменений в проект. Примеры:
- Куда добавить новые классы модульного тестирования
- Как запускать модульное тестирование в Eclipse и вне этой интегрированной среды разработки
- Куда добавить функциональные тесты
- Запуск функционального тестирования
- Запуск локальной предварительной проверки TF
Как добавить модульное тестирование
В Android Open Source Project (AOSP) добавьте класс модульного тестирования в файл tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java.
ВАЖНО! Если добавить новые классы модульного тестирования в эти расположения, они будут автоматически выполняться перед отправкой без дополнительной настройки.
Как запустить модульные тесты
Все модульные и функциональные тесты AOSP для Trade Federation находятся в проекте tools/tradefederation/core/tests.
Чтобы запустить отдельный тест в Eclipse, нажмите на него правой кнопкой мыши и выберите Run As > JUnit (Запустить как > JUnit). Чтобы запустить все модульные тесты, выполните набор com.android.tradefed.UnitTests.
Вы также можете запустить модульный тест из командной строки в дереве исходного кода Tradefed после сборки, например:
tools/tradefederation/core/javatests/run_tradefed_tests.sh
Модульные тесты можно выполнять отдельно, а функциональные – только с помощью Trade Federation и на устройстве Android. Все функциональные тесты должны соответствовать правилу именования *FuncTest.
Проверьте результаты модульного тестирования
При запуске run_tradefed_tests.sh модульные тесты проверяют все части тестовой среды, включая некоторые условия ошибок. В консоли будет выведена подробная информация, в том числе трассировки стека.
В итоговой сводке результатов будет указано, произошел ли сбой.
Пример итоговой сводки в консоли:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
Все тесты должны быть пройдены, поэтому, если при локальном изменении произойдет сбой, исправьте его.
Добавьте функциональные тесты
Если функциональное тестирование включает устройство (использует любой API
ITestDevice), определение набора находится вcom.android.tradefed.DeviceFuncTests. В противном случае определение набора находится в файлеcom.android.tradefed.FuncTests.Если ваши методы тестирования можно отнести к одному из существующих подклассов набора, лучше добавить их туда. В противном случае добавьте новый класс в соответствующий набор.
В любом случае, добавив тест в набор, вы автоматически запустите его в конвейере CI вместе с другими функциональными тестами.
Запустите функциональные тесты
Чтобы запустить функциональное тестирование в Eclipse:
- Убедитесь, что устройство подключено к хосту и что
adbи, если необходимо,fastbootнаходятся в PATH Eclipse. Проще всего запустить Eclipse из оболочки, в которой задан правильный путь PATH. - Создайте приложение Java. Запустите конфигурацию, выбрав Run > Run configurations (Запустить > Конфигурации запуска).
- Установите для проекта значение
tradefed-tests, а для основного класса –com.android.tradefed.command.CommandRunner. - Запуск
m tradefed-all. - На вкладке Arguments (Аргументы) укажите следующие аргументы командной строки:
host --class <full path of test class to run> - Нажмите Выполнить.
Чтобы запустить функциональные тесты вне Eclipse:
- Постройте Торговую федерацию.
- Подключите устройство Android к хосту.
- Запуск по расписанию:
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh - При необходимости выберите устройство, добавив
--serial <serial no>, как показано в выходных данныхadb devices.
Как запустить предварительные тесты TF для локальных изменений
Если вы хотите запустить тест так же, как это делается в TF presubmit, используйте следующую команду:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
Это запустит все предварительные тесты TF для локально созданной версии TF, чтобы проверить, не нарушает ли ваше изменение работу каких-либо тестов.
Предварительные тесты TF являются надмножеством модульных тестов, описанных выше, но выполняются медленнее. Поэтому рекомендуется запускать модульные тесты во время разработки для более быстрой проверки и выполнять предварительные проверки перед загрузкой CL.