Структура исполнителя тестов

Test Runner — это единица выполнения потока вызовов. Вот где тесты действительно запускаются.

Интерфейсы

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

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

Базовый

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

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

Передовой

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

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

Существующие тестировщики

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

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

Пишем новый тестовый раннер

Дополнительные рекомендации по написанию нового средства запуска тестов доступны в разделе написания тестов .