GoogleTest (GTest, также иногда называемый «родными тестами») для платформы обычно обращается к низкоуровневым HAL или выполняет сырой IPC против различных системных служб. Из-за этого подход к тестированию обычно тесно связан с тестируемой службой.
Для интеграции с инфраструктурой непрерывного тестирования создавайте свои GTests с использованием фреймворка GTest .
Примеры
Вот несколько примеров GTest в исходном коде платформы:
Краткое изложение шагов
Следуйте примеру настройки модуля GTest .
Чтобы автоматически включить зависимости GTest, используйте правило сборки
BUILD_NATIVE_TEST
в конфигурации тестового модуля.Напишите тестовую конфигурацию, следуя примерам для простых и сложных вариантов.
Соберите тестовый модуль с помощью
mmm
для инкрементальных сборок илиmma
для полных сборок:make hwui_unit_tests -j
Запустите тест локально с помощью Atest :
atest hwui_unit_tests
Вы также можете добавлять аргументы в свои GTests. Ниже приведены особенно полезные аргументы:
-
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
-
Запустите тест с помощью тестового инструмента Trade Federation:
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 .