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

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

Интерфейсы

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

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

Базовый

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

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

Передовой

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

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

Существующие тест-раннеры

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

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

Напишите новый инструмент для запуска тестов.

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