단위 및 기능 테스트 포함

이 섹션에서는 프로젝트를 변경한 후 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]

모든 테스트는 통과하도록 유지되므로 로컬 변경에서 실패가 발생하면 테스트가 수정되었는지 확인하십시오.

기능 테스트 추가

  • 기능 테스트에 장치가 포함된 경우( ITestDevice API 사용) 제품군 정의는 com.android.tradefed.DeviceFuncTests 에 있습니다. 그렇지 않으면 제품군 정의는 com.android.tradefed.FuncTests 에 있습니다.

  • 테스트 방법이 기존 제품군 하위 클래스 중 하나에 넣는 것이 합리적이라면 거기에 추가하는 것을 선호합니다. 그렇지 않으면 해당 제품군에 새 클래스를 자유롭게 추가하십시오.

  • 두 경우 모두 제품군에 추가하면 다른 기능 테스트와 함께 CI 파이프라인에서 테스트가 자동으로 실행됩니다.

기능 테스트 실행

Eclipse에서 기능 테스트를 실행하려면:

  1. 장치가 호스트에 연결되어 있고 adb 및 필요한 경우 fastboot 가 Eclipse의 PATH에 있는지 확인하십시오. 이를 수행하는 가장 쉬운 방법은 적절한 PATH를 사용하여 쉘 설정에서 Eclipse를 시작하는 것입니다.
  2. 자바 애플리케이션을 생성합니다. 실행 > 구성 실행을 통해 구성을 실행합니다.
  3. 프로젝트를 tradefed-tests 로 설정하고 메인 클래스를 com.android.tradefed.command.CommandRunner 로 설정합니다.
  4. m tradefed-all 실행합니다.
  5. 인수 탭에서 다음 명령줄 인수를 제공하십시오. host --class <full path of test class to run>
  6. 실행 을 클릭합니다.

Eclipse 외부에서 기능 테스트를 실행합니다.

  1. 무역 연맹을 구축하십시오.
  2. Android 기기를 호스트에 연결합니다.
  3. tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. 선택적으로 adb devices 의 출력에 표시되는 --serial <serial no> 를 추가하여 장치를 선택합니다.

로컬 변경 사항에 대해 TF 사전 제출 테스트 실행

TF 사전 제출과 유사한 방식으로 실행하려면 다음을 사용하세요.

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

이렇게 하면 로컬로 빌드된 TF에 대해 모든 TF 사전 제출 테스트가 트리거되어 변경 사항으로 인해 테스트가 중단되지 않는지 확인할 수 있습니다.

TF 사전 제출 테스트는 위의 단위 테스트의 상위 집합이지만 실행하는 것이 더 느립니다. 따라서 더 빠른 유효성 검사를 위해 개발 중에 단위 테스트를 실행하고 CL을 업로드하기 전에 사전 제출을 실행하는 것이 좋습니다.