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

В этом разделе объясняется, как запускать тесты 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:

  1. Убедитесь, что устройство подключено к хосту и что adb и, если необходимо, fastboot находятся в PATH Eclipse. Проще всего запустить Eclipse из оболочки, в которой задан правильный путь PATH.
  2. Создайте приложение Java. Запустите конфигурацию, выбрав Run > Run configurations (Запустить > Конфигурации запуска).
  3. Установите для проекта значение tradefed-tests, а для основного класса – com.android.tradefed.command.CommandRunner.
  4. Запуск m tradefed-all.
  5. На вкладке Arguments (Аргументы) укажите следующие аргументы командной строки: 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.

Как запустить предварительные тесты TF для локальных изменений

Если вы хотите запустить тест так же, как это делается в TF presubmit, используйте следующую команду:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

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

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