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