Включите модульные и функциональные тесты

В этом разделе объясняется, как запускать тесты Торговой федерации и вносить в них свой вклад после внесения изменений в проект. Это включает в себя:

  • Куда добавлять новые классы модульных тестов
  • Запуск модульных тестов в 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:

  1. Убедитесь, что устройство подключено к хосту и что adb и, при необходимости, fastboot добавлены в переменную PATH Eclipse. Самый простой способ сделать это — запустить Eclipse из командной строки, указав правильную переменную PATH.
  2. Создайте Java-приложение. Запустите конфигурацию через меню «Запуск» > «Конфигурации запуска» .
  3. Установите проект как tradefed-tests , а основной класс как com.android.tradefed.command.CommandRunner .
  4. Запустите команду `run m tradefed-all .`
  5. На вкладке «Аргументы» укажите следующие аргументы командной строки: host --class <full path of test class to run>
  6. Нажмите «Выполнить» .

Для запуска функциональных тестов вне Eclipse.

  1. Строительная торговая федерация.
  2. Подключите устройство Android к хосту.
  3. Запустите tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. При желании выберите устройство, добавив --serial <serial no> как это отображается в выводе команды adb devices .

Запустите предварительные тесты TensorFlow перед отправкой, используя локальные изменения.

Если вы хотите выполнить проверку аналогично предварительной отправке в TensorFlow, используйте следующий способ:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

Это запустит все предварительные тесты TensorFlow для вашей локально собранной версии TensorFlow, чтобы помочь вам убедиться, что ваши изменения не нарушают работу каких-либо тестов.

Предварительные тесты TensorFlow являются надмножеством описанных выше модульных тестов, но их выполнение занимает больше времени. Поэтому рекомендуется запускать модульные тесты во время разработки для более быстрой проверки и предварительные тесты перед загрузкой изменений.