Во-первых, убедитесь, что вы понимаете работу с опционами в Tradefed .
Настройка набора описывает два уровня, которые существуют в структуре пакета:
- Люкс на высшем уровне
- Модули
В контексте Tradefed, отличном от набора, об этом не нужно думать; каждая опция переходит к полному вызову. В контексте комплекта модули хранятся изолированно от комплекта; поэтому не все варианты доступны на их уровне.
Варианты передачи в пакет верхнего уровня
Набор верхнего уровня ведет себя как стандартная конфигурация Tradefed: полная конфигурация, включая средство запуска пакета, получает все параметры, как и конфигурация Tradefed без пакета.
Передать опции в модули
Модули по умолчанию не получают никаких параметров, переданных команде. Они должны быть явно нацелены на получение опций через опцию module-arg
. Такая изоляция параметров модулей упрощает отладку.
Пример:
cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>
cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true
Синтаксис гарантирует, что целевой модуль получит данную опцию.
Существуют дополнительные способы передачи параметров модулям, такие как test-arg
, который позволяет передавать параметры средству выполнения тестов каждого модуля в зависимости от типа или класса средства выполнения.
Пример:
cts-tradefed run cts --test-arg <test-class>:<option-name>:<option-value>
cts-tradefed run cts --test-arg com.android.tradefed.testtype.JarHosttest:collect-tests-only:true
Синтаксис нацелен не на конкретный модуль, а на все средства выполнения тестов данного класса. test-arg
рассматривает только реализации IRemoteTest как потенциального получателя параметров.
Передача опции в тестовый класс java в java_test_host
Если вы добавляете @Option
в свой тестовый класс java как часть цели сборки java_test_host, вам нужно будет использовать следующее для внедрения этой опции:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
set-option в этом контексте — это опция запуска HostTest из тестовой системы, которая обертывает ваши классы Java для их выполнения.
Передать фильтры в набор
Чтобы отфильтровать некоторые тесты из набора, мы используем --include-filter
и --exclude-filter
, чтобы принудительно включить или исключить определенный тест или модуль соответственно. Исключение имеет приоритет.
Они используют этот формат: [abi] <module-name> [test name]
Примеры:
--include-filter CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes