В этом разделе объясняется, как запустить и внести вклад в тесты Trade Federation после внесения изменений в проект. Это включает:
- Где добавлять новые классы модульного тестирования
- Запуск модульных тестов в 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, чтобы запустить отдельный модульный тест, просто щелкните правой кнопкой мыши тест и выберите Run As > 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
. - Укажите следующие аргументы командной строки на вкладке «Аргументы» :
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 presubmit являются надмножеством вышеприведенных модульных тестов, но их запуск занимает больше времени. Поэтому рекомендуется запускать модульные тесты во время разработки для более быстрой проверки и запускать presubmits перед загрузкой CL.