Тест Google (GTest, иногда также называемый «нативные тесты») для платформы обычно обращается к низкоуровневым HAL или выполняет прямое межпроцессное взаимодействие (IPC) с различными системными сервисами. Из-за этого подход к тестированию обычно тесно связан с тестируемым сервисом.
Для интеграции с инфраструктурой непрерывного тестирования создавайте свои GTest-тесты, используя фреймворк GTest .
Примеры
Вот несколько примеров использования GTest в исходном коде платформы:
Краткое описание шагов
Следуйте примеру настройки модуля GTest .
Для автоматического включения зависимостей GTest используйте правило сборки
BUILD_NATIVE_TESTв конфигурации тестового модуля.Напишите тестовую конфигурацию, следуя примерам для простых и сложных параметров.
Для инкрементальной сборки используйте команду
mmm, а для полной сборкиmma:make hwui_unit_tests -jЗапустите тест локально с помощью Atest :
atest hwui_unit_testsВы также можете добавлять аргументы к своим GTest-тестам. Следующие аргументы особенно полезны:
- Параметр
native-test-flagзадает дополнительные значения флагов, которые передаются команде оболочки GTest. native-test-timeoutзадает значение тайм-аута теста в микросекундах.В приведенном ниже примере кода используются оба этих аргумента:
atest test-name -- --module-arg test-name:native-test-flag:"\"argument1 argument2\"" \ --module-arg test-name:native-test-timeout:60000
- Параметр
Проведите тест с помощью тестовой среды Торговой федерации:
make tradefed-all -j tradefed.sh run template/local_min --template:map test=hwui_unit_testsУстановите и запустите вручную:
Загрузите сгенерированный тестовый исполняемый файл на ваше устройство:
adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \ /data/nativetest/hwui_unit_tests/hwui_unit_testsЗапустите GTest и выполните тест, вызвав исполняемый файл теста на устройстве:
adb shell /data/nativetest/hwui_unit_tests/hwui_unit_testsДля получения дополнительной информации о настройке выполнения тестов добавьте параметр
--helpв исполняемый файл теста. Более подробную информацию о параметрах см. в расширенном руководстве GTest .