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

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