Parçalamayı Yapılandır

Bu sayfa paketi modülü (maçına mümkündür açıklar AndroidTest.xml Kırma işleminde aracılığıyla) ve laboratuarda sürekli yürütme sırasında iyi hız performansı elde edersiniz. Seçenekleri genel bir şekilde, her birini kullanma mantığıyla açıklamaya çalışacağız.

Laboratuvarda bir süiti sürekli çalıştırırken, genel tamamlama süresini azaltmak için süit genellikle birkaç cihaz arasında paylaştırılır. Donanım, genel tamamlama süresini (son parça bittiğinde) en aza indirmek için tipik olarak her parçanın yürütme süresini dengelemeye çalışır; ancak bazı testlerin doğası gereği, her zaman yeterli iç gözleme sahip değiliz ve modül sahibinin bazı davranışları ayarlamasına ihtiyacımız var.

Parçalanabilir mi, parçalanamaz mı?

Bir modül (etiketlemek mümkündür AndroidTest.xml birlikte) <option name="not-shardable" value="true" /> o kanatlı bir edilmemesi gerektiğini koşum takımı bildirmek için.

Tipik bir modülde, kablo demetinin modülünüzü parçalamasına izin vermek (varsayılan davranış) yapılacak doğru şeydir. Ancak bazı durumlarda bu davranışı geçersiz kılmak isteyebilirsiniz:

  • Modülünüzün kurulumu pahalı olduğunda:

Bir modülün parçalanması, hazırlığın (APK, push dosyası vb. yükleme) muhtemelen ilgili cihaz başına bir kez çalışmasına neden olur. Modül kurulumunuz uzun ve pahalıysa ve testin çalışma zamanına kıyasla çoğaltılmaya değer değilse, modülünüzü parçalanamaz olarak etiketlemeniz gerekir.

  • Modülünüzdeki test sayısı düşük olduğunda:

Bir modülün parçalanması, muhtemelen farklı cihazlarda bağımsız olarak yürütülen tüm test durumlarıyla sonuçlanır. Bu birinci noktayla ilgilidir; test sayınız düşükse, bazı parçalarda tek bir test yapabilir veya hiç test yapmayabilirsiniz, bu da herhangi bir hazırlık adımını oldukça pahalı hale getirir. Örneğin, tek bir test durumu için APK yüklemek genellikle buna değmez.

Enstrümantasyon testleri: Maksimum parça sayısı?

Aracılığıyla bir enstrümantasyon test çalışması AndroidJUnitTest aslında yüklemek ve APK bitene kadar enstrümantasyon parçası olan kaç testler koşum maruz etmez. Bu işlemler maliyetlidir ve paketin tüm modülleri için parçalama zamanında yürütülemez.

Kablo demeti, enstrümantasyon testini aşırı parçalayabilir ve bazı boş parçalarla sonuçlanabilir; altı parçada beş test içeren bir enstrümantasyon testini parçalamak, bir testte beş parça ve testsiz bir parça ile sonuçlanır. Bu parçaların her biri, maliyetli bir APK yüklemesi gerektirir.

Yani enstrümantasyon testi APK'nızdaki testlerin sayısının düşük olan modül etiketleme olduğunda <option name="not-shardable" value="true" /> koşum bu modülü Sharding değmez bilmek olanak sağlayacak.

AndroidJUnitTest koşucu bunun içine kırığa izin kırıkların maksimum sayısını belirtmek için izin özel bir seçeneği vardır: <option name="ajur-max-shard" value="5" /> .

Bu, çağırma düzeyinde istenen parça sayısından bağımsız olarak enstrümantasyonun maksimum kaç kez parçalanabileceğini belirtmenize olanak tanır. Varsayılan olarak, enstrümantasyon, çağırma için istenen parça sayısına bölünecektir.

Örneğin, enstrümantasyon testi APK sadece iki test içermektedir ama hala sahip, bunu shard istiyorsanız ajur-max-shard değerini 2 boş kırıkları oluşturarak değildir sağlayacak.