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

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