AndroidX Test Espresso 3.1.1, Runner 1.1.1, Kural 1.1.1, Monitor 1.1.1 AndroidTestOrchestrator 1.1.1, Core 1.1.0, Truth 1.1.0, JUnit 1.1.0 (2018-12-13)
Bu, AndroidX Test 1.1.0'ın kararlı sürümüdür.
- Temel
- Başka bir etkinlik başlatan Etkinlik Senaryosu destek etkinlikleri oluşturma
AndroidX Test Espresso 3.1.1-beta01, Runner 1.1.1-beta01, Kural 1.1.1-beta01, Monitör 1.1.1-beta01 AndroidTestOrchestrator 1.1.1-beta01, Core 1.1.0-beta01 Truth 1.1.0-beta801, J201.0-beta01
- Temel
- Yeni core ktx kotlin uzantısı yapısı! kotlin dostu bir ActivitySenaryo.launchActivity API içerir
- Özel amaçlı etkinlikleri başlatmak için yeni ActivitySenaryo API'si
- Etkinlik sonucu almak için yeni ActivitySenaryo API'si
- Etkinlik Senaryosunu kapatılabilir hale getirin
- Espresso
- withResourceNameMatcher ve HumanReadables öğesini API 28 ile uyumlu olacak şekilde değiştirin.
- ChangeTextAction'ın açıklamasını, stringToBeSet öğesini içerecek şekilde güncelleyin
- Robofactric duraklatılmış döngü modunda Espresso desteği.
- JUnit
- Test kurulumu ve yayından kaldırma sırasında bir Etkinliği otomatik olarak başlatmak ve kapatmak için kullanılan yeni ActivitySenaryoRule API'si
- Yeni junit-ktx kotlin uzantısı yapısı! Kotlin'e uygun bir ActivitySenaryoRule API'si içerir.
- Koşucu
- Paketleri alırken -e paket ve -e testFile öğelerinin tutarlı bir davranış göstermesini sağlayın
- Gerçek
- Bool, parcelable ve parcelableAsType BundleSubject API'leri ekleyin
AndroidX Test Espresso 3.1.0, Runner 1.1.0, Kural 1.1.0, Monitor 1.1.0 AndroidTestOrchestrator 1.1.0, Core 1.0.0 Truth 1.0.0, JUnit 1.0.0 (2018-10-24)
- Tümü
- minSdkVersion seçeneğini 14, targetSdkVersion seçeneğini 28 olarak ayarlayın
- Espresso
- Dize olmayan türlerle çalışması için withContentDescription sorununu düzeltin
- Roboecric'te Espresso kullanma desteği ekleyin
- Sorun 72798625: textAllCaps etkinleştirildiğinde Espresso ViewMatchers.withText çalışmıyor
- Hareket etkinlikleri dizisi ekleme desteği eklendi
- Niyetler
- Amaç listesini almak için beta API'yi ekleyin. Yeni doğruluk iddialarıyla kullanılmak üzere tasarlanmıştır
- Koşucu
- Hazır uygulamalar için destek ekleme
- androidx.test.runner.AndroidJUnit4'ü kullanımdan kaldırın ve androidx.test.ext.junit.runners.AndroidJUnit4 ile değiştirin
- İzleyin
- androidx.test.instrumentationRegistry desteğini sonlandırıp androidx.test.platform.app.instrumentationRegistry ve androidx.test.core.app.ApplicationProvider ile değiştirin.
- AndroidTestOrchestrator
- Orkestratör kapsamı işlemesini yalnızca hem "coverage" hem de "coverageFilePath" bağımsız değişkenleri aktarılırsa etkinleştirin.
- Hata ayıklayıcıyı yalnızca -debug ayarlandığında bekleyin, ancak ATO test durumlarını listelemek için bekleyin. Orkestraların kendisinde hata ayıklama için yeni bir orchestratorDebug işareti eklendi
- Temel
- Yeni yapı! Şunlar için hem yerel hem de cihaz üzerinde testleri destekleyen yeni API'ler içerir:
- Bağlam alınıyor: ApplicationProvider
- Etkinlik yaşam döngülerini kontrol etme: ActivitySenaryo(beta)
- MotionEvent, PackageInfo için oluşturucular
- Parceables yardımcı sınıfı
- Yeni yapı! Şunlar için hem yerel hem de cihaz üzerinde testleri destekleyen yeni API'ler içerir:
- Gerçek
- Yeni yapı! Bildirim, Amaç, Paket, Parcelable ve MotionEvent için özel veri konuları içerir
- JUnit
- Yeni yapı! Hem yerel hem de cihaz üzerinde testleri destekleyen androidx.test.ext.junit.runners.AndroidJUnit4 JUnit çalıştırıcı sınıfını içerir.
Espresso 3.0.2-beta1, Runner 1.0.2-beta1, Kural 1.0.2-beta1, Monitor 1.0.2-beta1, AndroidTestOrchestrator 1.0.2-beta1 (16.04.2018)
- Espresso
- Breaking API Değişikliği:
- 64062890. Sayıda, herkese açık API'mizde Guava Optional'ı kullandığımızı fark ettik. Bu bizim açımızdan korkunç bir ihmaldi . Sonuç olarak, bu sorunu düzeltmek için bu sürümde genel bir API değişikliği yapıldı. Guava Optional sınıfının etrafında, "android.support.test.espresso.util" ad alanının altında bulunan EspressoOptional adlı çirkin bir sarmalayıcıyı kullanıma sunduk. Sızdırılan Guava Optional API'yi kullanan geliştiricilerin, bu yeni sürüme güncelleme yaparken içe aktarma işlemlerini ve referanslarını EspressoOptional'ı kullanacak şekilde değiştirmeleri gerekmektedir. Bu durumun neden olabileceği aksaklıklar için özür dileriz.
- onView() ve onData() API'leri hataları önlemek için artık @CheckReturnValue olarak işaretlendi
- Espresso çekirdekli POM dosyasının "kurallar" bağımlılığını çekmemesi, bunun yerine espresso yoğunlu POM dosyasının çekmesi düzeltildi. Espresso özütleri espresso çekirdeği olmadan kullanılamayacağı için bu, geliştiriciler açısından bir NoOp değişikliği olacaktır.
- Sorun 65486414: Espressoda guava bağımlılığı eksik
- Sorun 65576174: Espresso IdlingResourceRegistry.sync ikinci test başarısız olmasına neden oluyor
- Sorun 65568629: Espresso.onIdle, IdlingRegistry'yi kullanmıyor
- Sorun 69333598: espresso 3.0.1, Android kitaplık modülünde play-services-auth:11.6.0 ile uyumlu değil.
- Sorun 64062890: AdapterViewProtocol arayüzü tarafından gösterilen Dahili İsteğe bağlı tür,
- Sorun 64091847: Espresso 3.0.0, test çalıştırıcısına bağlı OLMAMALIDIR
- Sorun 73722050: espresso-contrib 3.0.2-alpha1 paketleri android.arch.{lifecycle/core} sınıfları
- Breaking API Değişikliği:
- Espresso-uzaktan
- Bu yepyeni bir eserdir. Espresso'nun tüm çoklu işlem işlevlerini, espresso çekirdekli eserleri dışında birbirinden ayırdık. Böylece daha temiz olur ve espresso-çekirdeklerin toplam boyutu ve yöntemi sayısı önemli ölçüde azalır.
- Koşucu
- Bir bağlayıcı işlemi için çok büyükse yığın izlemeyi (stack trace) kısaltın. AJUR'un hataları bir bağlayıcı IPC yoluyla hesap yöneticisine bildirmesi gerektiğinden, işlem başına 1 MB olan Bağlayıcı işlem sınırını aşmadığımızdan emin olmamız gerekir.
- Sorun 65828576: Sınıfta @Yoksay ile test çalıştırılırken TestRequestBuilder kilitlenmesi
- Sorun 37057596: @BeforeClass içindeki hataları ele almayız
- Kurallar
- Yaşam döngüsü değişikliklerinden sonra test edilen etkinlikle ilgili bir referans yayınladığınızdan emin olun. Test sırasında kullanıcı artık #getActivity() yönteminden alınan referansı kullanarak Etkinliği doğrudan değiştirebilir. Etkinlik bitip yeniden başlatılırsa, #getActivity() tarafından döndürülen referans artık her zaman Etkinlik'in mevcut örneğini işaret ediyor.
- Sorun 64389280: GrantPermissionRule WRITE_EXTERNAL_STORAGE sağlamıyor
- Sorun 37065965: ActivityTestRule, yön değişikliğinden sonra etkinliği sızdırıyor
- Sorun 75254050: ActivityTestRule, yapılandırma değişiklikleri sırasında Etkinlik örneğini güncellemiyor
- Sorun 64464625: Etkinliğin bitirme() yönteminde kullanıcı arayüzü çalışması yapılamıyor
- AndroidTestOrchestrator
- Belirtilen konumda kapsam dosyaları oluşturmak için
-e coverage true -e coverageFilePath /sdcard/foo/işaretlerini iletin (Uygulamanın belirtilen konuma yazma izni olmalıdır). Kapsam dosyası adlandırma kuralı artık şucom.foo.Class#method1.ecşeklinde görünür. Bunun yalnızca izole modda çalışırken desteklendiğini unutmayın. Ayrıca, AndroidJUnitRunner'ıncoverageFileişaretiyle birlikte kullanılamaz. Oluşturulan kapsam dosyaları birbirinin üzerine yazılır. - Orkestratörün test çağrıları arasında
pm clear context.getPackageName()vepm clear targetContext.getPackageName()komutlarını çalıştırmasını istiyorsanız-e clearPackageDataişaretini iletin. Açık komuttaki bağlamın, test bağlamı altındaki Uygulama olduğunu unutmayın. - Düzeltildi - Hedef içinde @Test olmayan, yani boş bir test çalıştırırken, test sonucu eski moddan farklı.
- Sorun 72758547: Test Orkestratörü, Jacoco Kapsam Verilerinin eksik olmasına neden oluyor. Yalnızca son test çalıştırması verileri bulunuyor.
- Sorun 67916042: Android Test Orkestratörü : OutOfMemory nedeniyle yürütme, İşlem kilitlenmesinde durdu
- Sorun 77752735: TransactionTooLargeException için Orchestrator kilitleniyor
- Sorun 77549481: Test Orkestratörü Her Testten Sonra "pm Açık" Olarak Çalışmalıdır
- Belirtilen konumda kapsam dosyaları oluşturmak için
Espresso 3.0.2-alpha1, Çalıştırıcı 1.0.2-alpha1, Kural 1.0.2-alpha1, AndroidTestOrchestrator 1.0.2-alpha1 (05.12.2017)
Espresso
Intentsartık çağrılabilir bir yanıta sahip. Bu sayede, tetiklenen bir amaç yakalandıktan sonra ancakInstrumentation.ActivityResultnesnesi döndürmeden önce testler yürütülebilir.
Koşucu
Test çalıştırmadan ve JUnit özelliklerine ihtiyaç duymadan
MonitoringInstrumentationihtiyacı olan kullanıcılar için monitör yapısınıcom.android.support.test:monitor:<version>ayırın.com.android.support.test:runner:<version>kullanıyorsanız Gradle,runnermodülünün bağımlılığı olarakmonitormodülünü otomatik olarak çektiğinden her şey beklendiği gibi çalışır.newRunListenerOrderModeişareti eklendi.truedurumunda, kullanıcı tanımlı işleyiciler varsayılan işleyicilerden önce çalışır. (Bu davranışın zaman içinde varsayılan hale gelmesini bekliyoruz.)Sorun 65828576:
@Ignoreek açıklamasına sahip bir sınıfta (test çalışması olmadan bağımsız sürüm veya JUnit özellikleri olmadan) testler çalıştırılırkenTestRequestBuilderkilitleniyor.
AndroidTestOrchestrator
- Artık boş testleri düzenlenmemiş
AndroidJUnitRunnerile aynı şekilde işler. - Orkestratör artık
AndroidJUnitRunnerkaynağından çok büyük standart çıkışları işleyebilir.
- Artık boş testleri düzenlenmemiş
Espresso 3.0.1, Runner 1.0.1, Kural 1.0.1, AndroidTestOrchestrator 1.0.1 (28.08.2017)
Espresso
- Sanal makineye adım hata ayıklayıcı eklendiğinde
onTimeout()politikasını engellemek için birIdlingPolicyseçeneği eklendi. - 64024656, 64247586 ve 64525881 numaralı sorunlar: Kullanıcı
-esınıf çalıştırıcı bağımsız değişkenini ekleyerek belirli sınıfları yüklemediği sürece başarısız sınıf yüklemeleriyle ilgili hataları bildirmeyin. - Sorun 64877246: Kaynak JAR dosyasına eksik sınıfları ekleme.
- Sanal makineye adım hata ayıklayıcı eklendiğinde
Koşucu
- Basitleştirilmiş
ShardingFiltermantığı. - Sorun 65025743:
@RequiresDevicefiltresi artık FTL emülatörlerini destekliyor.
- Basitleştirilmiş
AndroidTestOrchestrator
- Rapor hatalarını tekrarlamayın. Bir test süreci başarısız olduktan sonra çöktüğünde artık test için yalnızca bir hata bildirilmektedir.
- Orchestrator için Javadoc düzeltildi.
- Uzak işlem kilitlenirse artık testler kaçırıldı olarak gösterilir.
- Artık yoksayılan test durumlarını işliyor.
- Artık eski sonuçları eşleştirmek için yoksayılan test durumlarını altbilgiden hariç tutar.
- Çalışma zamanı izniyle ilgili sorunlar düzeltildi. Test raporları artık Android 7.0 (API düzeyi 24) ve sonraki sürümlerde SD karta yazılıyor.
Espresso 3.0.0, Runner 1.0.0, Kural 1.0.0, AndroidTestOrchestrator 1.0.0 (25.07.2017, Duyuru)
Zarar veren değişiklikler
- Tüm yapılar
- 15'in altındaki API düzeyleri için destek bırakılıyor ancak minimum SDK, kullanıcılara yükseltmeleri için zaman vermek amacıyla API düzeyi 9'a işaret ediyor
- Espresso
- Kullanımdan kaldırılan
android.support.test.espresso.contrib.CountingIdlingResourcesınıfı silindi ve şu konuma taşındı:android.support.test.espresso.idling.CountingIdlingResourceregisterIdlingResources()yerinegetInstance().register()alanını kullanma
- Guava artık farklı bir "dahili" ad alanına sarılmış durumda. Espresso ad alanları üzerinden yanlışlıkla Guava API'yi kullanırsanız bozulmalar görebilirsiniz
- Gölgeli Guava'ya (
.core.deps.guava.) yapılan tüm referansları kaldırın - Destek Kitaplığı sürümünüzü 25.4.0 veya daha yeni bir sürüme yükseltin
- Gölgeli Guava'ya (
- Kullanımdan kaldırılan
Bilinen sorunlar
- AndroidTestOrchestrator
-e numShardsve-e shardIndexçalıştırıcı bağımsız değişkenleri şu anda desteklenmiyor- Parametreli testler şu anda desteklenmemektedir.
Yeni özellikler
- Espresso
- Yeni MultiProcess Espresso
espresso-coreveespresso-webiçin API 26 desteği var ancak değilespresso-contrib - Yeni ve basit
IdlingRegistryAPIcom.android.support.test.espresso:espresso-idling-resource:3.0.0kapsamında yayınlandı- Kullanımdan kaldırılan yöntemler:
Executorsile senkronizasyona yardımcı olacak yeni API- Yeni maven yapısı:
com.android.support.test.espresso.idling:idling-concurrent:3.0.0 IdlingScheduledThreadPoolExecutorveIdlingThreadPoolExecutorsınıflarını içerir
- Yeni maven yapısı:
- Ağ istekleri ve yanıtlarıyla senkronizasyona yardımcı olacak yeni API.
- Yeni maven yapısı:
com.android.support.test.espresso.idling:idling-net:3.0.0 UriIdlingResourcesınıfını içerir
- Yeni maven yapısı:
- Yeni
espresso-coregörünüm eşleştiriciler:hasBackground(), birViewnesnesinin arka plan çekilebilir kaynağıyla eşleşiyor.hasTextColor()birTextViewnesnesinin rengiyle eşleşiyor
- Yeni görüntüleme işlemi yöntemleri:
- Geliştirilmiş
scrollTo()ListViewöğesinin alt öğeleriyle çalışmak için işlemi görüntüle repeatedlyUntil()– Görünüm, istenenViewMatchersile eşleşene kadar bir görünümde belirtilenViewActionişlemini gerçekleştirir
- Geliştirilmiş
- Yeni Espresso yöntemleri:
pressBackUnconditionally()–pressBack()işlevine benzer ancak Espresso gezinirken istisna yapmaznoActivity()–ViewActionveyaViewAssertiongerçekleştirmeden önce bir etkinliği bekleme ihtiyacını ortadan kaldırıronIdle()– Uygulama boşta kalana kadar ana iş parçacığını döngüye alıronIdle(Callable<T>)–onIdle()ile aynıdır ancak parametre olarak ek birCallablegerekir. Bu parametre, uygulama boşta kaldığında yürütülür
webScrollIntoView()–WebViewiçinde kaydırmanıza olanak tanıyan yeniespresso-webatomu
- Yeni MultiProcess Espresso
- Koşucu
-
InterceptingActivityFactoryveSingleActivityFactory:startService()vesendBroadcast()gibi yöntemleri geçersiz kılarak bir etkinliğin dış dünyadan ayrı bir yerde test edilmesine olanak tanır -
JUnitParams'ı
AndroidJUnitRunnerile kullanma desteği ekleyin -
@UiThreadTest'i temel test çalıştırıcı düzeyinde işlemeye başlayın ve@UiThreadTestRuleözelliğini kullanımdan kaldırın. Bu sayede,@UiThreadTestek açıklamasını doğrudan@Beforeve@Afterek açıklaması bulunan yöntemlerde kullanabilirsiniz. -
@SdkSupressek açıklaması artıkmaxSdkVersiondeğerini destekliyor (Sorun 37067792) -
-e classLoader- Çalıştırıcı bağımsız değişkenlerini kullanarak sınıf yükleyicileri geçirme olanağı sağlayın -
-e filter– Çalıştırıcı bağımsız değişkenleri kullanılarak belirtilecek özel JUnit filtreleri için destek ekleyin -
-e runnerBuilder– Geliştiricilerin, belirli bir sınıfa karşı çalışıp çalışmayacaklarını ve nasıl çalışacaklarını belirleyen kendiRunnerBuilderuygulamalarını sunmalarına olanak tanır.
-
- Kurallar
ProviderTestRule–ContentProvidernesneyi test etmek için yeni APIgetActivityResult()veActivityResultMatchers–setResult()adlı bir etkinliğin etkinlik sonucunu almak için yeni API
- AndroidTestOrchestrator
- Android Test Orchestrator, düzeltmeye ve izolasyona odaklanarak testleri toplamak ve çalıştırmak için yeni bir yol sunar. Orkestratör, her test için bir enstrümantasyon çalıştırıcı işlemi üreten ve sonuçları toplayan bağımsız bir enstrümantasyon sürecidir.
- Uygulama kilitlenmeleri, orkestratörü değil çalıştırıcı enstrümantasyonunu devre dışı bırakarak test paketinizin çalışmaya devam etmesini sağlar
- Düzenleyici APK'nın yüklenmesini gerektirir –
'com.android.support.test:orchestrator:1.0.0' - 1.0 sürümünde yalnızca komut satırı arayüzü vardır. Android Studio ve Firebase Test Labs ile entegrasyon sağlanması planlanmaktadır
- Android Test Orchestrator, düzeltmeye ve izolasyona odaklanarak testleri toplamak ve çalıştırmak için yeni bir yol sunar. Orkestratör, her test için bir enstrümantasyon çalıştırıcı işlemi üreten ve sonuçları toplayan bağımsız bir enstrümantasyon sürecidir.
Hata düzeltmeleri
- Espresso
- Yavaşlığı önemli ölçüde azaltmak için kök görünümü senkronizasyonu iyileştirildi
IdlingResourceRegistrybozukluğunu düzeltinIdlingResourcenesnesiyle daha iyi senkronizasyon- Sorun 37132680: Espresso, bir sonraki işlemi gerçekleştirmeden önce diyalog oluşturma işleminin tamamlanmasını beklemiyor
- Sorun 37103280: Espresso'nun, ProGuard tüketici kurallarını göndermesi ve böylece tüketicilerin bunları ekleme zorunluluğunu ortadan kaldırması gerekiyor
- Sorun 37094726: Espresso Intents, gereksiz uygulama etiketi içeriyor
- Sorun 37093953: Espresso: Boş/boş hata metni için kontrol yok
- Sorun 37071776:
espresso-core, Guava'nın.pomdosyalarını yerleştiriyor - Sorun 37062612:
release()bölgesinde NPE - Sorun 37063389:
androidTestbağımlılıkları derlenmediği için Guava veespresso-webbulunması - Sorun 37070533: Android Tasarım Destek Kitaplığı'nda
NavigationViewiçin destek ekleme
- Koşucu
-
@UiThreadTestözelliğini@Test(timeout = 123)ile birlikte kullanma özelliğini düzeltin -e notClasskoşucu bağımsız değişkeni düzeltildi-e log, JUnit3 ve JUnit4 test paketlerini veParameterizedileEnclosedkoşucularını destekleyecek şekilde düzeltildi- Sorun 37663530: Her test yönteminden önce ve sonra tüm etkinliklerin tamamlanmasını bekleyin
- Sorun 37132680: Espresso, bir sonraki işlemi gerçekleştirmeden önce iletişim kutusunun oluşturulmasını beklemiyor
-
Sorun 37123213:
@RequiresDevicex86_64 ABI'de yoksayıldı -
Sorun 37101485:
AndroidJUnitRunneriçin manifest tarafından sağlanan bazı bağımsız değişkenler (ör. test boyutu, ek açıklama ve hata ayıklama) yok sayılıyor - Sorun 37082857: Statik nesnelerde Espresso yarı paralel test yürütme başarısız oluyor
-
Sorun 37063396: Bağlam
ProviderTestCase2ile başlatılmadı (NullPointerExceptionsorununa neden olur)
-
- Kurallar
- Normal ve tembel
ActivityTestRulebaşlatma sırasında davranışları birleştirmek içinActivityTestRuleyaşam döngüsü düzeltildi - Sorun 37079943: Yeniden bağlamaya izin vermek için
ServiceTestRulesorununu düzeltin - Sorun 37109342:
getActivityResult()veActivityResultMatchersekleyin
- Normal ve tembel
- UiAutomator
UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICESile kullanım içinsetUiAutomationFlags(): Bu, diğer erişilebilirlik hizmetleri çalışırkenUiAutomatoruygulamasının kullanılabilmesine olanak tanır- Sorun 37082813:
API düzeyi 19 veya daha düşükse boş
EditTextnesnelerindesetText()hata mesajı döndürüyorNullPointerException
Diğer önemli değişiklikler
- İkili programlar artık Google Maven aracılığıyla yayınlanıyor
espresso-coreveespresso-webJAR dosyasının boyutu küçültüldü: Yerleştirilmiş bağımlılıklara artık ProGuard uygulanıyor- Tüm
.aardosya artık ProGuard kuralları içeriyor - Serbest bırakılan yapılara
proguard_library.cfgdosyayı ekleyin Tapperarayüzünün uygulanması içinsendTap()'in yeni bir sürümü var
Harici katkılar
- Espresso
- Koşucu
- Kurallar
Espresso 2.2.2, Runner/Rules 0.5 (22.02.2016, sessiz yayın)
Yeni özellikler
- espresso
- Sorun 194253: Android destek tasarım kitaplığında NavigationView desteği ekleme
- Etkinleştirilen animasyonlar ve geçişler için kontroller eklendi
- Yeni
ViewMatcherAPI'si:withResourceName()
Hata düzeltmeleri
- espresso
- Sorun 195331: Espresso-core guava pom dosyalarını yerleştiriyor
- Boştaki sayma kaynağı espresso-contrib'den taşındı
- kurallar
- Sorun 187249:
Intents.release()bölgesinde NPE
- Sorun 187249:
- koşucu
- Sorun 196066:
AndroidJUnitRunneriçindeki-e log truebağımsız değişkeni gerçek testi atlamıyor - Çalıştırıcının
onCreate()tanesinde hata ayıklayıcıyı bekleyin - Desteklenen tüm test ek açıklamaları platformdan ATSL'ye taşındı
- Hiçbir JSBridge ile ilgili yığın izleme dökümü kaldırıldı
AndroidAnnotatedBuilderdüzeltildi
- Sorun 196066:
Diğer önemli değişiklikler
ActivityTestRule,UiThreadTestRule,IntentsTestRuleveServiceTestRulebeta sürümünden çıktı- Tek tip kod biçimlendirmesi için kod stili ayarları dosyası ekleme
Espresso 2.2.1, Runner/Kurallar 0.4 (15.09.2015)
Yeni özellikler
- kurallar
ActivityTestRuleile tamamen uyumlu olacak yeniIntentsTestRulekurucusu eklendi
- koşucu
- API düzeyleri 15 ve önceki sürümler için özel büyük harf kullanımı içeren çokludex yüklemesi eklendi
- Sınıfa ve pakete hariç tutma filtreleri eklendi:
- Belirli bir sınıftakiler hariç tüm testleri çalıştırma:
adb shell am instrument -w -e notClass com.android.foo.FooTest - Tek bir test hariç tümü çalıştırılıyor:
adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo - Belirli bir paket hariç tüm testleri çalıştırma:
adb shell am instrument -w -e notPackage com.android.foo.bar
- Belirli bir sınıftakiler hariç tüm testleri çalıştırma:
Harici katkılar
- espresso
- 157911: Bir
EditTextnesnesindeki giriş türü için görünüm eşleştirici ekleyin - 157912:
EditTextnesnesinde eşleşen hata metni için görünüm eşleştirici ekleyin - 150674: İsteğe bağlı yer çekimine sahip çekmeceler için
DrawerActionsdesteği ekleyin - 150744:
DrawerActionsartık sızdırılmıyorparentListener - 153303: "Çekmece açık mı kapalı mı" kontrollerinde belirtilen yer çekimi
- 157910:
DrawerLayoutOpen and close action fabrikalarını ekleyin
- 157911: Bir
Hata düzeltmeleri
- espresso
ViewActions.closeSoftKeyboard()artık yazılım klavyesinin tamamen kaldırılmasını sağlıyor- API düzeyi 21 ve sonraki sürümler için Espresso'nun
Espresso.pressBack()yöntemiyle ilgili senkronizasyon sorunu düzeltildi - API düzeyi 23'te klavye kapatma animasyonlarının senkronizasyonu düzeltildi
- kurallar
- API düzeyi 23'teki
ServiceTestRuledüzeltildi.startService()her zaman açık birIntentile çağrılmalıdır
- API düzeyi 23'teki
- koşucu
- Bozuk gradle
JaCoCodesteği düzeltildi - Bozuk test parçalama desteği düzeltildi
JUnit3stil testi zaman aşımından sonra test çalıştırıcısındaki tutarsız durum düzeltildi
- Bozuk gradle
Diğer önemli değişiklikler
- Javadoc düzeltmeleri ve hata mesajı iyileştirmeleri
- Yöntem filtrelerini kullanırken
suite()yöntemlerini yoksayın ve başlatma hatalarını yoksaymayın
Espresso 2.2 / ATSL 0.3 (09.06.2015)
Yeni özellikler
- espresso-web 2.2
- Yeni
WebViewdesteği
- Yeni
- espresso-çekirdek 2.2
- Hançer v2'yi kullanmak için taşındı
- Hamcrest v1.3 kullanımı için geçiş yapıldı
- espresso-contrib 2.2
- Erişilebilirlik kontrolleri
DrawerActionsyer çekimi desteği
- kural 0.3
DisableOnAndroidDebugkural
- koşucu 0.3
- JUnit v4.10'dan JUnit v4.12'ye yükseltme
- Hamcrest v1.3'ü kullanmak üzere taşındı
Hata düzeltmeleri
DrawerActionsuygulamasınınParentListenersızıntısı düzeltildi- Varsayım hatası artık başarısız test yerine yoksayma testi olarak değerlendiriliyor
ExecutorServiceüzerindenMonitoringInstrumentationsızıntısı olan etkinlik örneği düzeltildi- Durdurulan aşamada takılı kalan artık etkinlikler için düzeltildi
- Kaydırma etkinliği oluşturulmamışsa
Until.scrollFinished()değerini "true" (doğru) döndürmesi için güncelleyin.UiObject2#setText()bölgesinde olası NPE'ye karşı kendinizi koruyun.
Espresso 2.1, Test Runner/Kurallar 0.2 ve UIAutomator 2.1.0 (21.04.2015)
Zarar veren değişiklikler
- Test çalıştırıcı yapısı ikiye bölündü ve
com.android.support.test:testing-support-lib:0.1olan adıcom.android.support.test:runner:0.2vecom.android.support.test:rules:0.2olarak değiştirildi.
Yeni özellikler
- espresso-intents: Test yazarlarının giden niyetleri doğrulamasını ve saptırmasını sağlayarak hermetik etkinlik arası testi sağlayan Mockito benzeri bir API
IntentsTestRule:ActivityTestRulekapsamını genişletir, başlatılır ve yayınlar İşlevsel kullanıcı arayüzü testlerinde Espresso-Intents
- espresso-çekirdek
ViewActions: İşlemleri yürütmeden önce genel onayları çalıştırma özelliği eklendi. Bu, mevcut Espresso test paketi yürütülürken görünüm hiyerarşisinin durumunu doğrulamak amacıyla Espresso üzerine inşa edilen diğer çerçeveler için faydalıdırViewMatchers.withContentDescription()resIdaşırı yük
- kurallar
ActivityTestRule: Bu kural, tek bir etkinliğin işlevsel testini sağlarUiThreadRuleveUiThreadTestek açıklamaları: Bu kural,UiThreadTestek açıklamasına sahip test yönteminin uygulamanın ana iş parçacığında (veya kullanıcı arayüzü iş parçacığında) yürütülmesine olanak tanır.ServiceTestRule: Bu kural, bir hizmetin işlevsel test edilmesini sağlar
- koşucu
ApplicationLifecycleCallback: Uygulama yaşam döngüsü etkinliklerini izlemek için geri çağırma- Tüm çalıştırıcı bağımsız değişkenleri artık Android manifest dosyasında da
<meta-data>etiketi kullanılarak belirtilebilir
- UIAutomator
UiDevice.dumpWindowHierarchy()artıkFileveyaOutputStreamkabul edebilir
Hata düzeltmeleri
- espresso
- Sütun bulunamadıysa imleç eşleştirici artık
falsedeğerini döndürerek Hamcrest'in bir sonraki imlece devam edebilmesini sağlıyor PreferenceMatcherswithTitleileNullPointerExceptionartık gerçekleşmiyor- Boşta olan kaynağın kaydının iptal edilmesi, Espresso'nun artık kaynakları boşta durdurduğunu düşünmesine neden olmuyor
- Espresso Contrib tarafından kullanılan güncellenmiş Destek Ek Açıklamaları sürümü
- Sütun bulunamadıysa imleç eşleştirici artık
- koşucu
AndroidJUnit4artık başarısız varsayımlarla testleri atlıyor
- UIAutomator
- İzlemecileri çalıştırarak
StaleObjectExceptionolmasını engelleyin
- İzlemecileri çalıştırarak
Diğer önemli değişiklikler
- Latin olmayan bir dizeyle metin yazamadığımızda daha iyi hata mesajı ekle
UIAutomator 2.0 (12.03.2015)
Artık Android Enstrümantasyonu'na dayanan UI Automator, ./gradlew connectedCheck komutunu kullanarak testler oluşturup çalıştırabilirsiniz.
Espresso Sürüm 2.0, Test Runner 0.1 (Yayınlanma tarihi: 19.12.2014)
Zarar veren değişiklikler
- Espresso,
android.support.test.espressokonumundanandroid.support.test.espressokonumuna taşındı. - Espresso eserleri yeniden adlandırıldı
espresso-1.1.jarartıkespresso-core-release-2.0.jarIdlingResourcearayüzü ayrı bir kitaplığa taşındı:espresso-idling-resource-release-2.0.jarCountingIdlingResourceartıkespresso-contrib-release-2.0.jarkonumunda bulunuyor (her zaman olması gerektiği gibi)
- İsteğe bağlı (guava bağımlılığı), guava bağımlılığının yeniden paketlenmesini desteklemek ve DEX çakışmasını (geliştirme sorunlarının önemli bir kaynağı) önlemek için genel API'den kaldırılmıştır. Bu durumdan etkilenen yöntemler şunlardır:
ViewAssertion.check()HumanReadables.getViewHierarchyErrorMessage()
Yeni özellikler
- İşlemler
ViewActionsreplaceText()openLink()- Yukarı ve aşağı kaydırın
- espresso-kontrib
RecyclerViewActions:RecyclerViewsile etkileşimleri yönetirPickerActions:DateveTimeseçicilerle etkileşimleri yönetir
- Eşleştiriciler
RootMatchersisPlatformPopup()
ViewMatchersisJavascriptEnabled()withSpinnerText()withHint()isSelected()hasLinks()
LayoutMatchers: i18n ile ilgili düzen testi için eşleyicilerCursorMatchers:Cursornesne için eşleştirici koleksiyonu
- Onaylar
isLeftOf()veisAbove()dahilPositionAssertions: Ekrandaki öğelerin göreli konumunu kontrol etmek içinViewAssertionskoleksiyonuLayoutAssertions: i18n ile ilgili düzen testi için onaylar
- Test uygulaması: Birçok yeni örnek etkinlik/test
- Diğer
Espresso.unregisterIdlingResources()veEspresso.getIdlingResources():IdlingResourcesile çalışırken ek esneklik sağlar.ViewInteraction.withFailureHandler():onView()öğesinden hata işleyicinin geçersiz kılınmasına izin verir.AdapterViewsiçinonData()desteğiCursorAdapterstarafından destekleniyor
Hata düzeltmeleri
ViewMatchers.isDisplayed(), tüm ekranı kaplayan ancak artık% 90'dan az olmayan görüntülemelerle eşleşirDrawerActions.openDrawer()için kaydırma işlemi çağrısı yapıldığında artıkIdlingResourceTimeoutExceptionsonucu elde edilmez
Diğer önemli değişiklikler
- Maven ile derlemeden Gradle'a geçildi
- DEX kazalarını önlemek için Espresso bağımlılıkları (Guava, Dagger, Hamcrest) ortadan kaldırıldı
- Boşta tutulan kaynaklar kaydettirilirken ve bunların kaydı iptal edilirken başarılı veya başarısız sonuç döndürülecek şekilde değiştirildi
- Lollipop desteği: Sürümle ilgili değişiklikleri hesaba katmak için
message.recycle()uygulamasını bir arayüzün arkasına yerleştirin - Hedef SDK düzeyi 21 olarak değiştirildi - çoğunlukla test uygulamasını etkiliyor
Sürüm 1.1 (Yayınlanma tarihi: 08.01.2014)
Espresso
- Yeni
swipeLeftveswipeRightViewActions - Çoklu pencere desteği: Espresso'nun işlemi çalıştırması gereken hedef pencerenin seçilmesini sağlayan gelişmiş bir özelliktir.
TypeTextActionile ilgili iyileştirmeler: Önceden odaklanmış bir görünümde metin yazılmasını sağlayarak metin eklemeyi kolaylaştırır- Çok sayıda hata düzeltmesi
Espresso Katkı Kütüphanesi
- Bu yeni kitaplık, Espresso'yu destekleyen ancak temel kitaplıkta yer almayan özellikler içeriyor
DrawerLayoutüzerinde çalışmak için yeniDrawerActions: Android Destek Kitaplığı'na bağımlı olduğu için bu kitaplığı temel Espresso kitaplığının dışında tutacağız
Örnek Testler
- Bu testler, test uygulamasıyla aynı pakette yayınlanmak üzere taşınmıştır
- Maven POM'lar, yinelenen guava dep'lerini kaldıracak şekilde düzeltildiğinden
mvn installartık çalışıyor