В этом разделе объясняется, как проводить тесты Торговой федерации и участвовать в них после внесения изменений в проект. Это включает в себя:
- Где добавлять новые классы модульных тестов
- Запуск модульных тестов в Eclipse и вне Eclipse IDE
- Куда добавлять функциональные тесты
- Выполнение функциональных тестов
- Выполнение некоторых проверок перед отправкой TF локально
Добавить модульные тесты
В проекте Android Open Source Project (AOSP) добавьте класс модульных тестов в: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
ВАЖНО: Добавление новых классов модульных тестов в эти расположения приведет к их автоматическому запуску в presubmit без дополнительной настройки.
Выполнение модульных тестов
Все модульные тесты AOSP и функциональные тесты для Trade Federation находятся в проекте tools/tradefederation/core/tests
.
В Eclipse для запуска отдельного модульного теста просто щёлкните по нему правой кнопкой мыши и выберите «Запустить как» > «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. Запустите конфигурацию через меню «Выполнить» > «Конфигурации запуска» .
- Установите проект на
tradefed-tests
и основной класс наcom.android.tradefed.command.CommandRunner
. - Запустите
m tradefed-all
. - На вкладке «Аргументы» укажите следующие аргументы командной строки:
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, используйте это:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
Это запустит все предварительные тесты TF на вашем локально созданном TF, чтобы помочь вам убедиться, что ваши изменения не нарушают ни один тест.
Тесты TF pre-submit представляют собой надмножество модульных тестов, описанных выше, но они выполняются медленнее. Поэтому рекомендуется запускать модульные тесты во время разработки для более быстрой проверки, а pre-submit — перед загрузкой CL.