Пользовательский набор тестов для AOSP - PullRequest
0 голосов
/ 14 мая 2019

Я занимаюсь разработкой специального устройства для Android P и добавил собственный системный сервис, который использует некоторые скрытые API. Служба будет использоваться приложением Android, которое не является частью дерева исходных текстов AOSP.

Я добавил несколько юнит-тестов и инструментальных тестов для своего сервиса и теперь хочу интегрировать их в мой конвейер CI. Какой будет лучший подход - продлить CTS? Но это только мой сервис и не предоставляет публичного API. VTS? Но afaik VTS только о тестировании HAL и ядер. Есть ли способ просто объявить пользовательский набор тестов, чтобы можно было запускать его с использованием Trade Federation / Atest, например "tradefed.sh run my_test_suite"?

Ответы [ 3 ]

0 голосов
/ 18 мая 2019

Atest использует TEST_MAPPING, чтобы найти, что тесты должны быть запущены. Так что, если вы просто хотите протестировать свои APK / сервисы с помощью API, возможно, вы можете добавить свой модуль тестирования инструментов в TEST_MAPPING в каталоге top code и запустить atest в каталоге code top, чтобы запустить тестирование инструментов .

source.android.com предоставляет документ о том, как использовать atest для запуска ваших тестов КИПиА и тестов торговой федерации на основе TEST_MAPPING.

Если ваш модульный тест основан на Robolectric, atest может запустить его правильно, потому что atest также поддерживает Robolectric модульные тесты в Android P.

0 голосов
/ 20 мая 2019

Наконец я нашел то, что искал - есть хорошее объяснение того, как добавить пользовательский тег комплекта тестов TradeFed (на основе источников Android P) - [aosp] / tools / tradefederation / core / tests / res / config / люкс / suite.md

По сути, вам нужно создать новый файл конфигурации, подобный этому (пока я пытался добавить его в папку TradeFederation, как написано в документе):

<?xml version="1.0" encoding="utf-8"?>
<configuration description="My test suite config">
    <test class="com.android.tradefed.testtype.suite.TfSuiteRunner">
        <option name="run-suite-tag" value="my-test-suite" />
    </test>
</configuration>

А затем используйте его в своих тестовых конфигурационных файлах, например так:

<option name="test-suite-tag" value="my-test-suite" />

И тогда вы можете выполнить свой набор следующим образом:

make tradefed-all
make YourTestModule    
tradefed.sh run template/local --template:map test=suite/my-test-suite
0 голосов
/ 14 мая 2019

Поскольку ваши изменения являются частью кода AOSP, CTS/VTS охватывает все тестовые наборы, необходимые для набора тестов на совместимость.Я не думаю, что необходимо добавить ваш пользовательский набор тестов как часть CTS/VTS тестовых случаев.Тем не менее, вы можете написать независимые модульные тесты для вашего модуля.Даже если вы добавите расширения в существующий код CTS, это будет бесполезно, так как окончательный CTS будет работать в официальном тестовом наборе (отправка Google для проверки и официальное издание).

Для более подробной информации, пожалуйста, обратитесь https://source.android.com/compatibility/tests

...