Структура тест-раннера

Тестовый исполнитель — это исполнительный блок потока вызовов. Именно здесь фактически запускаются тесты.

Интерфейсы

Исполнители тестов определяются через интерфейс IRemoteTest , который предоставляет простой метод run , который будет вызываться при запуске тестов.

Это позволяет максимально просто определить прогон теста. Однако на практике разработчикам тестов потребуется больше информации для правильного написания тестов, обычно это информация о сборке и устройстве. Именно здесь пригодятся следующие интерфейсы.

Базовый

Эти два интерфейса наиболее широко используются сегодня, поскольку они отражают основные потребности большинства тестов.

  • IBuildReceiver позволяет тесту получить объект IBuildInfo , созданный на этапе поставщика сборки, содержащий всю информацию и артефакты, относящиеся к настройке теста.
  • IDeviceTest позволяет TF получать объект ITestDevice , представляющий тестируемое устройство, и предоставляет API для взаимодействия с ним.

Передовой

Существуют дополнительные интерфейсы, которые обеспечивают более сложное взаимодействие между тестовой программой и исполнителем тестов:

  • ITestFilterReceiver , который позволяет тесту получать набор фильтров для запуска только определённых тестов. Это полезно при запуске подмножества тестов.
  • ITestCollector позволяет исполнителю тестов только выполнить пробный прогон тестов, а не выполнять их. Это полезно для сбора списка всех тестовых случаев.

Существующие участники тестирования

Уже существует множество программ для запуска тестов, некоторые из них предназначены для основных типов тестов:

Помимо вышеперечисленных, существует большое количество пользовательских тест-раннеров; они служат специализированным целям для некоторых функциональных тестов, например, Boot Test.

Напишите новый тестовый раннер

Более подробные рекомендации по написанию нового тестового исполнителя можно найти в разделе «Написание тестов» .