이 섹션에서는 프로젝트를 변경한 후 Trade Federation 테스트를 실행하고 기여하는 방법을 설명합니다. 여기에는 다음이 포함됩니다.
- 새 단위 테스트 클래스를 추가할 위치
- Eclipse 및 Eclipse IDE 외부에서 단위 테스트 실행
- 기능 테스트를 추가할 위치
- 기능 테스트 실행
- 일부 TF 사전 제출 유효성 검사를 로컬에서 실행
단위 테스트 추가
Android 오픈 소스 프로젝트(AOSP)에서 다음 위치에 단위 테스트 클래스를 추가합니다. tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
중요: 이 위치에 새 단위 테스트 클래스를 추가하면 추가 설정 없이 사전 제출에서 자동으로 실행됩니다.
단위 테스트 실행
Trade Federation에 대한 모든 AOSP 단위 테스트 및 기능 테스트는 tools/tradefederation/core/tests 프로젝트에 있습니다.
Eclipse 내에서 개별 단위 테스트를 실행하려면 테스트를 마우스 오른쪽 버튼으로 클릭하고 Run As > JUnit 을 선택하기만 하면 됩니다. 모든 단위 테스트를 실행하려면 com.android.tradefed.UnitTests 제품군을 실행하세요.
또한 다음과 같이 빌드 후 Tradefed 소스 트리의 명령줄에서 단위 테스트를 시작할 수 있습니다. tools/tradefederation/core/javatests/run_tradefed_tests.sh
단위 테스트는 독립 실행형으로 실행할 수 있지만 기능 테스트는 Trade Federation 자체를 사용하여 실행해야 합니다. Android 기기가 필요합니다. 모든 기능 테스트는 명명 규칙 *FuncTest 를 따라야 합니다.
단위 테스트 결과 확인
run_tradefed_tests.sh 를 실행할 때 단위 테스트는 일부 오류 조건을 포함하여 테스트 도구의 모든 부분을 실행합니다. 스택 추적을 포함하여 자세한 출력을 콘솔에 인쇄합니다.
결과의 최종 요약은 오류가 발생했는지 여부를 나타냅니다.
콘솔의 최종 요약 예:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
모든 테스트는 통과하도록 유지되므로 로컬 변경에서 실패가 발생하면 테스트가 수정되었는지 확인하십시오.
기능 테스트 추가
기능 테스트에 장치가 포함된 경우(
ITestDeviceAPI 사용) 제품군 정의는com.android.tradefed.DeviceFuncTests에 있습니다. 그렇지 않으면 제품군 정의는com.android.tradefed.FuncTests에 있습니다.테스트 방법이 기존 제품군 하위 클래스 중 하나에 넣는 것이 합리적이라면 거기에 추가하는 것을 선호합니다. 그렇지 않으면 해당 제품군에 새 클래스를 자유롭게 추가하십시오.
두 경우 모두 제품군에 추가하면 다른 기능 테스트와 함께 CI 파이프라인에서 테스트가 자동으로 실행됩니다.
기능 테스트 실행
Eclipse에서 기능 테스트를 실행하려면:
- 장치가 호스트에 연결되어 있고
adb및 필요한 경우fastboot가 Eclipse의 PATH에 있는지 확인하십시오. 이를 수행하는 가장 쉬운 방법은 적절한 PATH를 사용하여 쉘 설정에서 Eclipse를 시작하는 것입니다. - 자바 애플리케이션을 생성합니다. 실행 > 구성 실행을 통해 구성을 실행합니다.
- 프로젝트를
tradefed-tests로 설정하고 메인 클래스를com.android.tradefed.command.CommandRunner로 설정합니다. -
m tradefed-all실행합니다. - 인수 탭에서 다음 명령줄 인수를 제공하십시오.
host --class <full path of test class to run> - 실행 을 클릭합니다.
Eclipse 외부에서 기능 테스트를 실행합니다.
- 무역 연맹을 구축하십시오.
- Android 기기를 호스트에 연결합니다.
-
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh - 선택적으로
adb devices의 출력에 표시되는--serial <serial no>를 추가하여 장치를 선택합니다.
로컬 변경 사항에 대해 TF 사전 제출 테스트 실행
TF 사전 제출과 유사한 방식으로 실행하려면 다음을 사용하세요.
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
이렇게 하면 로컬로 빌드된 TF에 대해 모든 TF 사전 제출 테스트가 트리거되어 변경 사항으로 인해 테스트가 중단되지 않는지 확인할 수 있습니다.
TF 사전 제출 테스트는 위의 단위 테스트의 상위 집합이지만 실행하는 것이 더 느립니다. 따라서 더 빠른 유효성 검사를 위해 개발 중에 단위 테스트를 실행하고 CL을 업로드하기 전에 사전 제출을 실행하는 것이 좋습니다.