Средство запуска тестов — это исполнительная единица потока вызова. Именно здесь на самом деле запускаются тесты.
Интерфейсы
Средства запуска тестов определяются через интерфейс IRemoteTest , который предоставляет простой метод run
, который будет вызываться при запуске тестов.
Это позволяет выполнить простейшее определение тестового прогона. Но на практике для правильного написания тестов авторам тестов потребуется больше информации, обычно это информация о сборке и устройстве. Здесь пригодятся следующие интерфейсы.
Базовый
Эти два интерфейса сегодня используются наиболее широко, поскольку они отражают основные потребности большинства тестов.
- IBuildReceiver позволяет тесту получить объект
IBuildInfo
, созданный на этапе поставщика сборки , содержащий всю информацию и артефакты, связанные с настройкой теста. - IDeviceTest позволяет TF получать объект
ITestDevice
, который представляет тестируемое устройство, и предоставляет API для взаимодействия с ним.
Передовой
Существуют дополнительные интерфейсы, которые обеспечивают более сложное взаимодействие между тестовым комплектом и программой запуска тестов:
- ITestFilterReceiver , который позволяет тесту получать набор фильтров только для запуска определенных тестов. Это полезно при выполнении подмножества тестов.
- ITestCollector , который позволяет исполнителю тестов только тестировать тесты, а не выполнять их фактически. Это полезно при сборе списка всех тестовых случаев.
Существующие тестировщики
Уже существует множество средств запуска тестов, некоторые для основных типов тестов:
- AndroidJUnitTest/InstrumentationTest (связанный с AJUR на стороне устройства)
- GTest (сторона устройства и хоста) с библиотекой googletest
- Тесты, управляемые хостом (тесты Java, которые выполняются на хосте и вызывают устройство оттуда)
- Юнит-тесты на чистом Java (наш бегун делает и то, и другое)
- Python-тесты
- Тесты Google Benchmark с библиотекой тестов
Помимо вышеперечисленных, существует большое количество пользовательских средств запуска тестов; они служат специализированным целям для функционального тестирования, например, Boot Test.
Напишите новый тест-раннер
Дополнительные инструкции по написанию нового средства запуска тестов доступны в разделе «Написание тестов» .