Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

전역 구성을 통해 프로토콜 로드

이 섹션을 이해하려면 먼저 Tradefed @Option부터 살펴봐야 합니다.

Tradefed의 일반적인 옵션을 사용하면 클래스를 테스트하여 XML 구성 또는 명령줄에서 추가 정보를 가져올 수 있습니다. 이 기능을 사용하면 필요한 경우 하나의 추가 단계를 통해 이러한 추가 정보의 일부를 리졸브할 수 있습니다.

파일 옵션의 예

예시 파일 @option:

@Option(name = 'config-file')
    private File mConfigFile;
    

위의 예시는 XML 구성을 통해 설정할 수 있습니다.

<option name="config-file" value="/tmp/file" />
    

명령어를 통해 설정할 수도 있습니다.

--config-file /tmp/file
    

설명

이 기능을 사용하면 원격인 파일 유형 @Options를 로컬 파일에 리졸브하여 사용자의 입장에서 원활하게 사용할 수 있도록 할 수 있습니다.

이 작업의 경우 파일을 원격 형식 경로로 지정해야 합니다. 예:

--config-file gs://bucket/tmp/file
    

이 경로는 경로가 저장되는 GCS(Google Cloud Storage) 내의 파일을 가리킵니다. Tradefed는 원격 경로를 보자마자 로컬에서 파일을 다운로드하여 @Option에 할당하려고 시도합니다. 이는 mConfigFile 변수가 파일의 로컬 버전을 가리키는 결과로 이어지며, 이 파일은 테스트에 의해 사용될 수 있습니다.

어떠한 이유로든 원격 파일을 다운로드할 수 없는 경우에는 Tradefed에서 테스트의 실행을 막는 ConfigurationException을 표시합니다. 일부 테스트 아티팩트가 함께 누락될 수 있는 만큼 Google은 이러한 파일의 누락을 치명적인 결함으로 간주합니다.

지원되는 프로토콜

다운로드와 관련하여 공식적으로 지원되는 프로토콜과 형식은 다음과 같습니다.

Google Cloud Storage, 프로토콜: gs, 형식: gs://<bucket name>/path

제한사항

@Option의 동적 해결책은 현재 제한된 수의 프로토콜과 다운로드 위치만 지원합니다. @Option의 해결책은 현재 기본 XML Tradefed 구성에 의해서만 사용 설정됩니다. 도구 모음을 실행 중인 경우에는 최신 모듈(AndroidTest.xml)이 파일을 리졸브하지 않습니다. 이는 모듈에 의해 알 수 없는 종속성이 생성되지 않도록 하기 위함입니다.

새 프로토콜 구현

지원되는 프로토콜은 IRemoteFileResolver 인터페이스의 Tradefed에 구현이 있습니다. 이 인터페이스는 파일 경로에서 매칭되는 프로토콜의 짧은 태그를 정의합니다. 예를 들어 gs는 Google Cloud Storage 프로토콜에 사용됩니다.

구현된 프로토콜은 DynamicRemoteFileResolver 맵에 추가하여 공식적으로 지원을 켤 수 있습니다.