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

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

  • Куда добавить новые классы модульных тестов
  • Запуск модульных тестов в Eclipse и вне Eclipse IDE.
  • Куда добавить функциональные тесты
  • Запуск функциональных тестов
  • Выполнение некоторой предварительной проверки TF локально

Добавьте модульные тесты

В проекте Android с открытым исходным кодом (AOSP) добавьте класс модульных тестов в: инструменты/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

ВАЖНО. Добавление новых классов модульных тестов в эти местоположения приведет к их автоматическому запуску при предварительной отправке без дополнительной настройки.

Запускайте модульные тесты

Все модульные и функциональные тесты AOSP для Trade Federation расположены в проектеtools 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]

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

Добавьте функциональные тесты

  • Если ваш функциональный тест включает в себя устройство (использует любой ITestDevice API), определение пакета находится в 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. Запустите 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 .

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

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

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

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

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