В этом разделе объясняется, как запускать тесты Торговой федерации и вносить в них свой вклад после внесения изменений в проект. Это включает в себя:
- Куда добавлять новые классы модульных тестов
- Запуск модульных тестов в Eclipse и вне среды разработки 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 . Чтобы запустить все модульные тесты, запустите набор тестов 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. - Запустите команду `run
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.
Запустите предварительные тесты TensorFlow перед отправкой, используя локальные изменения.
Если вы хотите выполнить проверку аналогично предварительной отправке в TensorFlow, используйте следующий способ:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
Это запустит все предварительные тесты TensorFlow для вашей локально собранной версии TensorFlow, чтобы помочь вам убедиться, что ваши изменения не нарушают работу каких-либо тестов.
Предварительные тесты TensorFlow являются надмножеством описанных выше модульных тестов, но их выполнение занимает больше времени. Поэтому рекомендуется запускать модульные тесты во время разработки для более быстрой проверки и предварительные тесты перед загрузкой изменений.