옵션과 필터를 도구 모음 및 모듈에 전달

우선 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-argIRemoteTest의 구현만 옵션의 잠재적인 수신 대상으로 간주합니다.

옵션을 java_test_host의 Java 테스트 클래스에 전달

@Option을 java_test_host 빌드 타겟의 일부로 자바 테스트 클래스에 추가하는 경우 다음 스크립트를 사용하여 해당 옵션을 삽입해야 합니다.

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

이 컨텍스트에서 set-option은 실행을 위해 자바 클래스를 래핑하는 테스트 하네스의 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