Protokolleri genel yapılandırmayla yükle

Bu bölümü anlamak için önce Tradefed @Option'u inceleyin.

Tradefed'teki tipik seçenekler, test sınıflarının ek bilgileri XML yapılandırmasından veya komut satırından alınır. Bu özellik, gerekirse bir adım daha atmanız ve bu ek bilgilerin bazılarını çözmeniz gerekir.

Dosya seçeneği örneği

Örnek Dosya @option:

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

Yukarıdakiler XML yapılandırmasıyla ayarlanabilir:

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

veya şu komutla:

--config-file /tmp/file

Açıklama

Bu özellik, uzaktaki dosya türündeki @Options öğelerini yerel bir dosyaya çözerek kullanıcı açısından sorunsuz bir şekilde kullanılabilir hale getirmenize olanak tanır.

Bunun işe yaraması için dosyanın bir uzaktan stil yoluyla belirtilmesi gerekir. Örneğin, örnek:

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

Bu yol, Google Cloud Storage (GCS) paketinde bulunan saklanıyor. Bu uzak yol görüldüğünde takas, dosyayı indirmeye çalışır yerel olarak belirleyip @Option öğesine atayın. Bu, mConfigFile değişkeniyle sonuçlanır .

Uzak dosya herhangi bir nedenle indirilemezse Tradefed, ConfigurationException testin çalıştırılmasını engelleyecek. Bazı test yapıları da eksik olacağından bu dosyaların eksik olması kritik bir hata olarak kabul edilir.

Sorgu parametrelerini kullanma

? kullanarak bir URL'ye sorgu parametreleri ekleyebilirsiniz. Örneğin, gs://bucket/path?unzip=true. unzip=true anahtarı/değeri, IRemoteFileResolver arabirim uygulamasında kullanılabilir.

İki yerleşik davranış vardır:

  • unzip: true değerine ayarlanırsa ve indirilen dosya bir zip dosyasıysa otomatik olarak geçici bir konuma gönderilir. Örnek: ?unzip=true
  • isteğe bağlı: Varsayılan olarak false değerine ayarlanır. true değerine ayarlanırsa ve çözünürlük başarısız olursa bir istisna bildirmez ve dosyayı değiştirmez. Örnek: ?optional=true

Ayrıca, --dynamic-download-args key=value aracılığıyla genel sorgu bağımsız değişkenlerini iletebilirsiniz. Bu, anahtarı/değeri, çağrı sırasında denenen tüm dinamik indirmelere iletir.

Desteklenen protokoller

Resmi olarak desteklenen protokoller ve karşılık gelen biçimler şunlardır:

  • Google Cloud Storage, protokol: gs, biçim: gs://<bucket name>/path
  • Yerel dosyalar, protokol: file, biçim: file:/local/path
  • http bağlantıları, protokol: http, biçim: http://url
  • https bağlantıları, protokol: https, biçim: https://url

Sınırlamalar

@Option'ın dinamik çözünürlüğü şu anda yalnızca sınırlı sayıda protokolleri ve konumları belirler. @Option çözünürlüğü şu anda Yalnızca ana XML Tradefed yapılandırması için etkin.

Paket olarak çalıştırılıyorsa mevcut modüller (AndroidTest.xml) dosyaları varsayılan olarak oluşturulur. Bunun amacı, modüllerin bazı bilinmeyen bağımlılıklar oluşturmasını önlemektir. Bu paket düzeyinde --enable-module-dynamic-download kullanılarak kaçış yapılabilir. Ancak Uyumluluk Test Paketi ve (CTS) ve Tedarikçi Test Paketi (VTS) tarafından etkinleştirilmez.

Yeni bir protokol uygulayın

Desteklenen protokollerin, Uzaktan Dosya Çözücü arayüz ; getSupportedProtocol üzerinden dosya yolunu izleyin. Örneğin, gs Google Cloud Storage protokolü için kullanılır. Uygulanması önerilen arayüz #resolveRemoteFiles(RemoteFileResolverArgs), uzun vadede bakımını yapmasına yardım eder.

Uygulanan protokoller, META-INF hizmetler dosyasını yükleyin.