Передать параметры и фильтры в наборы и модули

Во-первых, убедитесь, что вы понимаете работу с опционами в 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 для их выполнения.

если ваш целевой файл jar для параметров содержит несколько тестовых классов, по умолчанию ожидается, что все они будут иметь указанный @option или использовать следующий синтаксис для нацеливания на один класс:

cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>

Передать фильтры в набор

Чтобы отфильтровать некоторые тесты из набора, мы используем --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