먼저 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_test_host의 Java 테스트 클래스에 옵션 전달
@Option
을 java_test_host 빌드 대상의 일부로 Java 테스트 클래스에 추가하는 경우 다음을 사용하여 해당 옵션을 삽입해야 합니다.
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
이 컨텍스트에서 set-option 은 Java 클래스를 래핑하여 실행하는 테스트 장치의 HostTest 러너 옵션입니다.
옵션에 대한 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