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

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

  • Где добавить новые классы модульных тестов
  • Запуск модульных тестов в Eclipse и вне Eclipse IDE
  • Куда добавить функциональные тесты
  • Запуск функциональных тестов
  • Локальный запуск некоторых проверок перед отправкой 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-приложение. Запустите конфигурацию через Run > Run configurations .
  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.