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.