AndroidX Test Espresso 3.1.1, Runner 1.1.1, Rules 1.1.1, Monitor 1.1.1 AndroidTestOrchestrator 1.1.1, Core 1.1.0, Truth 1.1.0, JUnit 1.1.0 (13.12.2018)
Bu, AndroidX Test 1.1.0'ın kararlı sürümüdür.
- Core
- ActivityScenario'nun başka bir etkinliği başlatan etkinlikleri desteklemesini sağlama
AndroidX Test Espresso 3.1.1-beta01, Runner 1.1.1-beta01, Rules 1.1.1-beta01, Monitor 1.1.1-beta01 AndroidTestOrchestrator 1.1.1-beta01, Core 1.1.0-beta01 Truth 1.1.0-beta01, JUnit 1.1.0-beta01 (2018-12-06)
- Core
- Yeni core-ktx Kotlin uzantısı yapısı Kotlin ile uyumlu bir ActivityScenario.launchActivity API'si içerir.
- Etkinlikleri özel amaçlarla başlatmak için yeni ActivityScenario API
- Etkinlik sonucu almak için yeni ActivityScenario API
- Make ActivityScenario closeable
- Espresso
- withResourceNameMatcher ve HumanReadables'ı API 28 ile uyumlu olacak şekilde değiştirin.
- ReplaceTextAction'ın açıklamasını, stringToBeSet'i içerecek şekilde güncelleyin.
- Robolectric'in duraklatılmış looper modunda Espresso'yu destekleyin.
- JUnit
- Test kurulumu ve kaldırma sırasında bir etkinliği otomatik olarak başlatıp kapatmak için yeni ActivityScenarioRule API
- Yeni junit-ktx Kotlin uzantı yapısı Kotlin ile uyumlu bir ActivityScenarioRule API'si içerir.
- Runner
- Paket alırken -e package ve -e testFile davranışını tutarlı hale getirme
- Truth
- bool, parcelable ve parcelableAsType BundleSubject API'lerini ekleme
AndroidX Test Espresso 3.1.0, Runner 1.1.0, Rules 1.1.0, Monitor 1.1.0 AndroidTestOrchestrator 1.1.0, Core 1.0.0 Truth 1.0.0, JUnit 1.0.0 (24.10.2018)
- Tümü
- minSdkVersion'ı 14, targetSdkVersion'ı 28 olarak ayarlayın.
- Espresso
- withContentDescription'ın dize olmayan türlerle çalışması için düzeltme yapıldı.
- Espresso'nun Robolectric'te kullanılması için destek ekleme
- Sorun 72798625: Espresso ViewMatchers.withText, textAllCaps etkinleştirildiğinde çalışmıyor
- Bir dizi hareket etkinliğinin yerleştirilmesi için destek ekleme
- Amaçlar
- Niyet listesini alma için beta API eklendi. Yeni doğruluk beyanlarıyla kullanılmak üzere tasarlanmıştır.
- Runner
- 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.
- İzleme
- androidx.test.InstrumentationRegistry'nin desteğini sonlandırma ve androidx.test.platform.app.InstrumentationRegistry ile androidx.test.core.app.ApplicationProvider ile değiştirme
- AndroidTestOrchestrator
- Yalnızca hem "coverage" hem de "coverageFilePath" bağımsız değişkenleri iletilirse düzenleyici kapsamı işleme özelliğini etkinleştirin.
- Yalnızca -debug ayarlandığında hata ayıklayıcıyı bekleyin, ancak ATO test senaryolarını listelemek için beklemeyin. Orkestratörün kendisinde hata ayıklama için yeni bir orchestratorDebug işareti eklendi.
- Core
- Yeni yapı! Aşağıdakiler 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: ActivityScenario(beta)
- MotionEvent, PackageInfo için oluşturucular
- Parceables yardımcı sınıfı
- Yeni yapı! Aşağıdakiler için hem yerel hem de cihaz üzerinde testleri destekleyen yeni API'ler içerir:
- Truth
- Yeni yapı! Bildirim, Amaç, Paket, Parcelable ve MotionEvent için özel doğruluk konularını içerir.
- JUnit
- Yeni yapı! Hem yerel hem de cihaz üzerinde testleri destekleyen JUnit çalıştırıcı sınıfı androidx.test.ext.junit.runners.AndroidJUnit4'ü içerir.
Espresso 3.0.2-beta1, Runner 1.0.2-beta1, Rules 1.0.2-beta1, Monitor 1.0.2-beta1, AndroidTestOrchestrator 1.0.2-beta1 (2018-04-16)
- Espresso
- API'de yapılan, geriye dönük uyumluluğu bozan değişiklik:
- 64062890 numaralı sorunda, genel API'mizde Guava Optional'ı kullandığımız belirtildi. Bu, bizim tarafımızdan yapılan korkunç bir gözden kaçırmaydı . Bu nedenle, bu sürümde bu sorunu gidermek için herkese açık API'de bir değişiklik yapıldı. "android.support.test.espresso.util" ad alanında bulunan EspressoOptional adlı, Guava Optional sınıfı etrafında çirkin bir sarmalayıcı oluşturduk. Sızdırılan Guava Optional API'yi kullanan geliştiricilerin, bu yeni sürüme güncelleme sırasında EspressoOptional'ı kullanmak için içe aktarma işlemlerini ve referanslarını değiştirmeleri gerekir. Bu durumun neden olabileceği aksaklıklardan dolayı özür dileriz.
- Hataları önlemek için onView() ve onData() API'leri artık @CheckReturnValue olarak işaretleniyor
- espresso-core POM dosyasının "rules" bağımlılığını çekmemesi için düzeltildi. Bunun yerine, espresso-intents POM'un çekmesi sağlandı. espresso-intents, espresso-core olmadan kullanılamadığından bu değişiklik geliştiriciler için NoOp olmalıdır.
- Sorun 65486414: Espresso'da guava bağımlılığı eksik
- Sorun 65576174: Espresso IdlingResourceRegistry.sync, ikinci testin 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 sunulan dahili isteğe bağlı tür
- Sorun 64091847: Espresso 3.0.0, test çalıştırıcıya bağlı OLMAMALIDIR
- 73722050 numaralı sorun: espresso-contrib 3.0.2-alpha1 paketleri android.arch.{lifecycle/core} sınıflarını içeriyor
- API'de yapılan, geriye dönük uyumluluğu bozan değişiklik:
- Espresso-remote
- Bu, yepyeni bir yapay nesne. Espresso'nun çok işlemli işlevlerinin tümünü espresso-core yapısının dışında bıraktık. Bu, daha temiz bir yöntemdir ve espresso-core'un genel boyutunu ve yöntem sayısını önemli ölçüde azaltır.
- Runner
- Yığın izleme, bağlayıcı işlemi için çok büyükse kısaltılır. AJUR'un hataları bir bağlayıcı IPC aracılığıyla AM'ye geri bildirmesi gerektiğinden, bağlayıcı işlem sınırını (işlem başına 1 MB) aşmadığımızdan emin olmamız gerekir.
- Sorun 65828576: @Ignore ile sınıfta test çalıştırılırken TestRequestBuilder kilitleniyor
- Sorun 37057596: @BeforeClass'taki hataları ele almıyoruz
- Kurallar
- Yaşam döngüsü değişikliklerinden sonra test edilen etkinlik hakkında referans yayınladığınızdan emin olun. Test süresince, #getActivity() işlevinden elde edilen referans kullanılarak Etkinlik doğrudan değiştirilebilir. Etkinlik tamamlanıp yeniden başlatılırsa #getActivity() işlevi tarafından döndürülen referans artık her zaman Etkinliğin mevcut örneğini gösterir.
- Sorun 64389280: GrantPermissionRule, WRITE_EXTERNAL_STORAGE izni vermiyor
- 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 Activity örneğini güncellemiyor
- Sorun 64464625: Etkinliğin finish() 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 şu şekilde görünüyor:com.foo.Class#method1.ec. Bu özelliğin yalnızca yalıtılmış modda çalışırken desteklendiğini unutmayın. Ayrıca, AndroidJUnitRunner'ıncoverageFileişaretiyle birlikte kullanılamaz. Oluşturulan kapsam dosyaları birbirinin üzerine yazıldığından. - Düzenleyicinin 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 edilen uygulama bağlamı olduğunu unutmayın. - Düzeltildi: Boş bir test (yani hedefte @Test yok) çalıştırıldığında test sonucu, eski moddan farklı oluyor.
- Sorun 72758547: Test Orchestrator, Jacoco Coverage Data'nın eksik olmasına neden oluyor ve yalnızca son test çalıştırma verilerini içeriyor
- Sorun 67916042: Android Test Orchestrator : OutOfMemory nedeniyle işlem kilitlenmesi üzerine yürütme durduruldu
- Sorun 77752735: Orchestrator, TransactionTooLargeException nedeniyle kilitleniyor
- Sorun 77549481: Test Orchestrator, Her Testten Sonra "pm clear" Komutunu Çalıştırmalıdır
- Belirtilen konumda kapsam dosyaları oluşturmak için
Espresso 3.0.2-alpha1, Runner 1.0.2-alpha1, Rules 1.0.2-alpha1, AndroidTestOrchestrator 1.0.2-alpha1 (2017-12-05)
Espresso
- artık çağrılabilir bir yanıta sahip. Bu sayede, tetiklenen bir amaç yakalandıktan sonra ancak bir
Instrumentation.ActivityResultnesnesi döndürülmeden önce testlerin yürütülmesine olanak tanınıyor.Intents
- artık çağrılabilir bir yanıta sahip. Bu sayede, tetiklenen bir amaç yakalandıktan sonra ancak bir
Runner
Test çalıştırma ve JUnit özellikleri olmadan
MonitoringInstrumentation'e ihtiyaç duyan kullanıcılar için monitor maven yapısını ayırıncom.android.support.test:monitor:<version>.com.android.support.test:runner:<version>kullanıyorsanız her şey beklendiği gibi çalışır. Bunun nedeni, Gradle'ınmonitormodülünürunnermodülünün bağımlılığı olarak otomatik olarak çekmesidir.newRunListenerOrderModeişareti eklendi.trueolduğunda, kullanıcı tanımlı dinleyiciler varsayılan dinleyicilerden önce çalışır. (Bu davranışın zamanla varsayılan davranış olmasını bekliyoruz.)65828576 numaralı sorun:
@Ignoreile açıklama eklenmiş bir sınıfta testler çalıştırılırkenTestRequestBuilderkilitleniyor (test çalıştırma veya JUnit özellikleri olmadan bağımsız).
AndroidTestOrchestrator
- Artık boş testleri, düzenlenmemiş testlerle aynı şekilde işler.
AndroidJUnitRunner - Orchestrator artık
AndroidJUnitRunner'dan gelen çok büyük standart çıkışları işleyebilir.
- Artık boş testleri, düzenlenmemiş testlerle aynı şekilde işler.
Espresso 3.0.1, Runner 1.0.1, Rules 1.0.1, AndroidTestOrchestrator 1.0.1 (28.08.2017)
Espresso
- Bir adım hata ayıklayıcısı sanal makineye bağlandığında
onTimeout()'ı bastırmak içinIdlingPolicyseç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ükleme işlemleri için hata bildirmeyin. - Sorun 64877246: Kaynak JAR dosyasına eksik sınıflar ekleniyor.
- Bir adım hata ayıklayıcısı sanal makineye bağlandığında
Runner
- 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 kilitlendiğinde artık test için yalnızca bir hata bildiriliyor.
- Orchestrator için Javadoc düzeltildi.
- Uzaktan işlem çöktüğünde testler artık "kaçırıldı" olarak gösteriliyor.
- Artık yok sayılan test durumlarını işler.
- Eski sonuçlarla eşleşmesi için artık altbilgide yoksayılan test durumları hariç tutuluyor.
- Çalışma zamanında istenen izin 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, Rules 1.0.0, AndroidTestOrchestrator 1.0.0 (2017-07-25, Duyuru)
Zarar veren değişiklikler
- Tüm yapay nesneler
- API düzeyi 15'ten düşük sürümler için destek sonlandırıldı. Ancak, kullanıcıların yükseltme yapması için minimum SDK, API düzeyi 9'u işaret etmeye devam ediyor.
- Espresso
- Kullanımdan kaldırılan
android.support.test.espresso.contrib.CountingIdlingResourcesınıfı silindi veandroid.support.test.espresso.idling.CountingIdlingResourcesınıfına taşındı.registerIdlingResources()yerinegetInstance().register()kullanın.
- Guava artık farklı bir "dahili " ad alanına jarjar'landı. Guava API'yi Espresso ad alanları üzerinden yanlışlıkla kullanıyorsanı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 sonraki 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 desteklenmemektedir.- Parametreli testler şu anda desteklenmemektedir.
Yeni özellikler
- Espresso
- Yeni Çok İşlemli Espresso
espresso-coreveespresso-webiçin API 26'da desteklenir ancakespresso-contribiçin desteklenmez. - Yeni hafif
IdlingRegistryAPIcom.android.support.test.espresso:espresso-idling-resource:3.0.0kapsamında yayınlandı- Desteği sonlandı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ştiricileri:hasBackground()Viewnesnesinin arka planı ile eşleşir drawable kaynakhasTextColor()TextViewnesnesinin rengiyle eşleşir
- Yeni görüntüleme işlemi yöntemleri:
scrollTo()ListViewöğesinin alt öğeleriyle çalışmak için geliştirilmiş görüntüleme işlemirepeatedlyUntil()– Görünüm, istenenViewMatchersile eşleşene kadar görünümde verilenViewActionişlemini gerçekleştirir.
- Yeni Espresso yöntemleri:
pressBackUnconditionally()– Similar topressBack()but doesn't throw an exception when Espresso navigatesnoActivity()– Bir etkinliğin tamamlanmasını beklemedenViewActionveyaViewAssertiongerçekleştirme olanağı sunar.onIdle()– Uygulama boşta kalana kadar ana iş parçacığını döngüye alır.onIdle(Callable<T>)–onIdle()ile aynıdır ancak parametre olarak ek birCallablealır. Bu parametre, uygulama boşta kaldıktan sonra yürütülür.
webScrollIntoView()–WebViewiçinde kaydırmanıza olanak tanıyan yeniespresso-webatomu
- Yeni Çok İşlemli Espresso
- Runner
-
InterceptingActivityFactoryveSingleActivityFactory:startService()vesendBroadcast()gibi yöntemleri geçersiz kılarak bir etkinliği dış dünyadan izole bir şekilde test etme olanağı sağlar. -
JUnitParams'ın
AndroidJUnitRunnerile kullanılması için destek eklendi. -
@UiThreadTestişleme, temel test çalıştırıcı düzeyinde başlatılır ve@UiThreadTestRuledesteği sonlandırılır. Bu sayede,@UiThreadTestek açıklaması doğrudan@Beforeve@Afterile ek açıklama eklenmiş yöntemlerde kullanılabilir. -
@SdkSupressek açıklaması artıkmaxSdkVersiondeğerini destekliyor (37067792 numaralı sorun) -
-e classLoader– Çalıştırıcı bağımsız değişkenlerini kullanarak sınıf yükleyicileri geçirme olanağı sağlama -
-e filter– Çalıştırıcı bağımsız değişkenleri kullanılarak belirtilecek özel JUnit filtreleri için destek eklendi. -
-e runnerBuilder: Geliştiricilerin, belirli bir sınıfa karşı çalışıp çalışamayacaklarını ve nasıl çalışabileceklerini belirleyebilecekRunnerBuilder'nin kendi uygulamalarını sağlamalarına olanak tanır.
-
- Kurallar
ProviderTestRule–ContentProvidernesnelerini test etmek için yeni APIgetActivityResult()veActivityResultMatchers–setResult()işlevinin çağrıldığı bir etkinliğin etkinlik sonucunu almak için yeni API
- AndroidTestOrchestrator
- Android Test Orchestrator, doğruluğa ve izolasyona odaklanarak testleri toplamak ve çalıştırmak için yeni bir yöntem sunar. Orchestrator, her test için bir enstrümantasyon çalıştırıcı işlemi oluşturan ve sonuçları toplayan bağımsız bir enstrümantasyon işlemidir.
- Uygulama kilitlenmeleri, koşucu enstrümantasyonunu devre dışı bırakır ancak düzenleyiciyi devre dışı bırakmaz. Bu sayede test paketinize devam edebilirsiniz.
- Orchestrator APK'sının yüklenmesi gerekir. –
'com.android.support.test:orchestrator:1.0.0' - 1.0 sürümünde yalnızca komut satırı arayüzü bulunur. Android Studio ve Firebase Test Lab ile entegrasyon planlanmaktadır.
- Android Test Orchestrator, doğruluğa ve izolasyona odaklanarak testleri toplamak ve çalıştırmak için yeni bir yöntem sunar. Orchestrator, her test için bir enstrümantasyon çalıştırıcı işlemi oluşturan ve sonuçları toplayan bağımsız bir enstrümantasyon işlemidir.
Hata düzeltmeleri
- Espresso
- Kusurları önemli ölçüde azaltmak için kök görünümü senkronizasyonu iyileştirildi.
IdlingResourceRegistrybozulmasını düzeltmeIdlingResourcenesnelerle daha iyi senkronizasyon- Sorun 37132680: Espresso, bir sonraki işlemi gerçekleştirmeden önce iletişim kutusu oluşturma işleminin tamamlanmasını beklemiyor
- Sorun 37103280: Espresso, ProGuard tüketici kurallarını gönderdiğinden tüketicilerin bunları eklemesi gerekmiyor
- Sorun 37094726: Espresso Intents, gereksiz uygulama etiketi içeriyor
- Sorun 37093953: Espresso: Boş/null hata metni için kontrol yok
- Sorun 37071776:
espresso-core, Guava'nın.pomdosyalarını yerleştiriyor - Sorun 37062612: NPE in
release() - Sorun 37063389: Guava ve
espresso-web'nınandroidTestbağımlılıkları olarak kullanılması derlenmiyor - Sorun 3707070533: Android Design Support Library'de
NavigationViewiçin destek ekleme
- Runner
-
@UiThreadTestile@Test(timeout = 123)birlikte kullanılamama sorununu düzeltme - Sabit
-e notClassrunner arg -e log, JUnit3 ve JUnit4 test paketlerinin yanı sıraParameterizedveEnclosedçalıştırıcılarını destekleyecek şekilde düzeltildi.- 37663530 numaralı sorun: Her test yönteminden önce ve sonra tüm etkinliklerin tamamlanmasını bekleyin.
- Sorun 37132680: Espresso, sonraki işlemi gerçekleştirmeden önce iletişim kutusu oluşturma işleminin tamamlanmasını beklemiyor
-
37123213 numaralı sorun:
@RequiresDevice, x86_64 ABI'de yoksayılıyor -
Sorun 37101485:
AndroidJUnitRunneriçin manifest'te sağlanan bazı bağımsız değişkenler (ör. test boyutu, açıklama ve hata ayıklama) yoksayılıyor - Sorun 37082857: Espresso yarı paralel test işlemi, statik nesnelerde başarısız oluyor
-
Sorun 37063396: Bağlam
ProviderTestCase2ile başlatılmadı (NullPointerExceptionneden oluyor)
-
- Kurallar
- Normal ve geç
ActivityTestRulebaşlatma işlemlerinde davranışı birleştirmek içinActivityTestRuleyaşam döngüsü düzeltildi. - Sorun 37079943: Yeniden bağlamaya izin vermek için
ServiceTestRuledüzeltildi. - Sorun 37109342: Ekleme
getActivityResult()veActivityResultMatchers
- Normal ve geç
- UiAutomator
setUiAutomationFlags()ile kullanılmak üzereUiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES– bu, diğer erişilebilirlik hizmetleri çalışırkenUiAutomator'in kullanılmasına olanak tanır- Sorun 37082813:
setText()API düzeyi 19 veya daha düşükse boşEditTextnesnelerindeNullPointerExceptionhatası veriliyor
Diğer önemli değişiklikler
- İkili dosyalar artık Google Maven aracılığıyla yayınlanıyor
espresso-coreveespresso-webJAR dosyalarının boyutu küçültüldü. Yerleştirilmiş bağımlılıklara artık ProGuard uygulanıyor..aardosyalarının tümü artık ProGuard kuralları içeriyor- Yayınlanan yapılara
proguard_library.cfgdosya ekleme Tapperarayüzünde uygulanacaksendTap()'ın yeni bir sürümü var.
Harici katkılar
- Espresso
- Runner
- 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:withResourceName()
Hata düzeltmeleri
- espresso
- Sorun 195331: espresso-core, guava'nın POM dosyalarını yerleştiriyor
- Boşta bekleyen kaynağı sayma işlevi espresso-contrib'den çıkarıldı
- kurallar
- 187249 numaralı sorun:
Intents.release()içinde NPE
- 187249 numaralı sorun:
- runner
- 196066 numaralı sorun:
AndroidJUnitRunneriçindeki-e log truebağımsız değişkeni, gerçek testi atlamıyor - Çalıştırıcının
onCreate()içinde hata ayıklayıcıyı bekle - Desteklenen tüm test ek açıklamaları platformdan ATSL'ye taşındı.
- JSBridge'in olmamasıyla ilgili yığın izleme dökümü kaldırıldı.
- Düzeltildi
AndroidAnnotatedBuilder
- 196066 numaralı sorun:
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/Rules 0.4 (2015-09-15)
Yeni özellikler
- kurallar
IntentsTestRuleile tam uyumlu olacak yeniIntentsTestRuleoluşturucu eklendi.ActivityTestRule
- runner
- API düzeyi 15 ve daha düşük olan sürümlerde multidex'in özel durum 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 testleri çalıştırma:
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
EditTextnesnesinde giriş türü için görünüm eşleştirici ekleme - 157912:
EditTextnesnesindeki hata metnini eşleştirmek için görünüm eşleştirici ekleyin - 150674: Rastgele yerçekimi olan çekmeceler için
DrawerActionsdesteği ekleme - 150744:
DrawerActionsartık sızmıyorparentListener - 153303: "Çekmece açık mı kapalı mı?" kontrollerinde yer çekimi belirtiliyor
- 157910:
DrawerLayoutaçma ve kapatma işlemini ekleyin fabrikalar
- 157911: Bir
Hata düzeltmeleri
- espresso
ViewActions.closeSoftKeyboard()artık sanal klavyenin tamamen kaldırılmasını sağlıyor- API düzeyi 21 ve sonraki sürümlerde Espresso'nun
Espresso.pressBack()yöntemiyle ilgili senkronizasyon sorunu düzeltildi. - API düzeyi 23'te klavye kapatma animasyonları için senkronizasyon düzeltildi.
- kurallar
- API düzeyi 23'te
ServiceTestRuledüzeltildi.startService()her zaman açık birIntentile çağrılmalıdır.
- API düzeyi 23'te
- runner
- Bozuk Gradle
JaCoCodesteği düzeltildi. - Bozuk test parçalama desteği düzeltildi.
JUnit3stil testi zaman aşımlarından sonra test çalıştırıcıdaki tutarsız durum düzeltildi.
- Bozuk Gradle
Diğer önemli değişiklikler
- Javadoc düzeltmeleri ve hata mesajlarında iyileştirmeler
- Yöntem filtreleri kullanılırken
suite()yöntemleri yoksayılır ve başlatma hataları yoksayılmaz.
Espresso 2.2 / ATSL 0.3 (2015-06-09)
Yeni özellikler
- espresso-web 2.2
- Yeni
WebViewdesteği
- Yeni
- espresso-core 2.2
- Dagger v2'yi kullanacak şekilde taşındı
- hamcrest v1.3 kullanacak şekilde taşındı
- espresso-contrib 2.2
- Erişilebilirlik kontrolleri
DrawerActionsyer çekimi desteği
- rules 0.3
DisableOnAndroidDebugkural
- runner 0.3
- JUnit v4.10'dan JUnit v4.12'ye yükseltme
- Hamcrest v1.3 kullanacak şekilde taşındı
Hata düzeltmeleri
DrawerActionssızıntısıParentListenerdüzeltildi- Varsayım hatası artık başarısız test yerine yoksayma testi olarak değerlendiriliyor.
MonitoringInstrumentationcihazınınExecutorServiceüzerinden etkinlik örneklerini sızdırması sorunu düzeltildi.- Üst öğesi olmayan etkinliklerin durdurulmuş aşamasında takılı kalması sorunu düzeltildi.
- Hiç kaydırma etkinliği oluşturulmadıysa
Until.scrollFinished()işlevini doğru değerini döndürecek şekilde güncelleyin.UiObject2#setText()'da olası NPE'ye karşı koruma sağlar.
Espresso 2.1, Test Runner/Rules 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 adı
com.android.support.test:testing-support-lib:0.1ikencom.android.support.test:runner:0.2vecom.android.support.test:rules:0.2olarak değiştirildi.
Yeni özellikler
- espresso-intents: Test yazarlarının giden amaçları doğrulayıp sahte yanıtlar oluşturmasına olanak tanıyarak hermetik etkileşim testini sağlayan, Mockito benzeri bir API'dir.
IntentsTestRule:ActivityTestRule, işlevsel kullanıcı arayüzü testlerinde Espresso-Intents'i başlatır ve yayınlar
- espresso-core
ViewActions: İşlemler çalıştırılmadan önce genel onaylamalar ç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 için Espresso'nun üzerine inşa edilen diğer çerçeveler için yararlıdır.ViewMatchers.withContentDescription()resIdaşırı yüklenmesi
- kurallar
ActivityTestRule: Bu kural, tek bir etkinliğin işlevsel testini sağlar.UiThreadRuleveUiThreadTestek açıklamaları: Bu kural,UiThreadTestile ek açıklama eklenmiş 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 testini sağlar.
- runner
ApplicationLifecycleCallback: Uygulama yaşam döngüsü etkinliklerini izlemek için geri çağırma- Artık tüm çalıştırıcı bağımsız değişkenleri, Android manifest dosyasında
<meta-data>etiketi kullanılarak da belirtilebilir.
- UIAutomator
UiDevice.dumpWindowHierarchy()artıkFileveyaOutputStreamkabul edebilir.
Hata düzeltmeleri
- espresso
- İmleç eşleştirici, sütun bulunamadığında artık
falsedöndürüyor. Böylece Hamcrest, sonraki imlece geçebiliyor. NullPointerExceptionilePreferenceMatcherswithTitleartık görünmüyor- Boşta bekleyen kaynağın kaydının silinmesi artık Espresso'nun boşta bekleyen kaynakların meşgul olduğunu düşünmesine neden olmuyor.
- Espresso Contrib tarafından kullanılan güncellenmiş Destek Açıklamaları sürümü
- İmleç eşleştirici, sütun bulunamadığında artık
- runner
AndroidJUnit4artık başarısız varsayımlara sahip testleri atlıyor
- UIAutomator
StaleObjectExceptionönlemek için izleyicileri çalıştırın
Diğer önemli değişiklikler
- Latin alfabesi dışındaki bir dizeyle typeText işlemi yapılamadığında daha iyi bir hata mesajı ekleme
UIAutomator 2.0 (12.03.2015)
UI Automator artık Android Instrumentation'a dayanıyor ve ./gradlew connectedCheck komutunu kullanarak testler oluşturup çalıştırabilirsiniz.
Espresso 2.0 sürümü, Test Runner 0.1 (Yayınlanma tarihi: 19.12.2014)
Zarar veren değişiklikler
- Espresso,
android.support.test.espressoolan ad alanındanandroid.support.test.espressoolan yeni bir ad alanına taşındı. - Espresso yapıları yeniden adlandırıldı
espresso-1.1.jaradlı bankanın yeni adıespresso-core-release-2.0.jarIdlingResourcearayüzü ayrı bir kitaplığa taşındı:espresso-idling-resource-release-2.0.jarCountingIdlingResourceartıkespresso-contrib-release-2.0.jariçinde yer alıyor. (Her zaman olması gerektiği gibi)
- Guava bağımlılığının yeniden paketlenmesini desteklemek ve DEX çakışmasını (geliştirme sürecinde büyük sorunlara yol açan bir kaynak) önlemek için isteğe bağlı (Guava bağımlılığı) olan kısım genel API'den kaldırıldı. Etkilenen yöntemler şunlardır:
ViewAssertion.check()HumanReadables.getViewHierarchyErrorMessage()
Yeni özellikler
- İşlemler
ViewActionsreplaceText()openLink()- Yukarı ve aşağı kaydırma
- espresso-contrib
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şleştiricilerCursorMatchers:Cursornesneleri için eşleştiricilerden oluşan bir koleksiyon
- İddialar
PositionAssertions,isLeftOf()veisAbove()dahil: Öğelerin ekrandaki göreli konumunu kontrol etmek içinViewAssertionskoleksiyonuLayoutAssertions: Uluslararasılaştırmayla ilgili düzen testi için onaylamalar
- Test uygulaması: Birçok yeni örnek etkinlik/test
- Diğer
Espresso.unregisterIdlingResources()veEspresso.getIdlingResources():IdlingResourcesile çalışırken daha fazla esneklik sağlar.ViewInteraction.withFailureHandler():onView()konumundaki hata işleyicinin geçersiz kılınmasına izin verir.CursorAdapterstarafından desteklenenAdapterViewsiçinonData()desteği
Hata düzeltmeleri
ViewMatchers.isDisplayed(), ekranın tamamını kaplayan ancak artık% 90'dan daha az gösterilmeyen görünümlerle eşleşir.- Kaydırma işlemi yapıldığında
DrawerActions.openDrawer()aranması artıkIdlingResourceTimeoutExceptionile sonuçlanmıyor
Diğer önemli değişiklikler
- Maven ile derleme işleminden Gradle ile derleme işlemine geçiş
- DEX çakışmalarını önlemek için Espresso bağımlılıkları (Guava, Dagger, Hamcrest) taşındı.
- Boşta duran kaynaklar kaydedilirken ve kaydı silinirken başarılı veya başarısız yanıtı döndürecek şekilde değiştirildi.
- Lollipop desteği: Sürümle ilgili değişiklikleri hesaba katmak için bir arayüzün arkasına
message.recycle()yerleştirin. - Hedef SDK düzeyi 21'e yükseltildi. Bu değişiklik, en çok test uygulamasını etkiler.
Sürüm 1.1 (Yayınlanma tarihi: 08.01.2014)
Espresso
- Yeni
swipeLeftveswipeRightViewActions - Çoklu pencere desteği: Espresso'nun işlemi çalıştıracağı hedef pencerenin seçilmesini sağlayan gelişmiş bir özellik
TypeTextActionile ilgili iyileştirmeler: Önceden odaklanılmış bir görünüme metin yazılmasına olanak tanır. Bu sayede metin eklemek kolaylaşır.- Çok sayıda hata düzeltildi.
Espresso Contrib Library
- Bu yeni kitaplık, Espresso'yu tamamlayan ancak temel kitaplığın parçası olmayan özellikler içerir.
DrawerActionsüzerinde işlem yapmak için yeniDrawerLayout: Android Destek Kitaplığı'na bağımlılığı olduğundan temel Espresso kitaplığının dışında tutulur.
Örnek Testler
- Bu testler, test uygulamasıyla aynı pakete taşındı.
- Maven POM'ları, yinelenen guava bağımlılıklarını kaldıracak şekilde düzeltildi. Bu nedenle
mvn installartık çalışmalıdır.