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 (2018-12-13)
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.
- Özel amaçlarla etkinlik 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ısı 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 (2018-10-24)
- 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: textAllCaps etkinleştirildiğinde Espresso ViewMatchers.withText çalışmıyor
- Bir dizi hareket etkinliğinin yerleştirilmesi için destek ekleme
- Amaçlar
- Niyet listesini almak 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ırıp androidx.test.platform.app.InstrumentationRegistry ve 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. Orchestrator'ın kendisinde hata ayıklama için yeni bir orchestratorDebug işareti eklendi.
- Core
- Yeni yapı! Aşağıdaki öğeler için hem yerel hem de cihaz üzerinde testleri destekleyen yeni API'ler içerir:
- Bağlam alma: 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ğıdaki öğeler 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, herkese açık API'mizde Guava Optional'ı kullandığımız belirtildi. Bu, bizim tarafımızdan yapılan korkunç bir gözden kaçırmaydı . Bu nedenle, bu sorunu çözmek için bu sürümde 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
- Sorun 73722050: 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 eserdir. Espresso'nun çok süreçli işlevlerinin tümünü espresso-core yapısının dışında bıraktık. Bu değişiklik, 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 alınan 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 iznini 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 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ıkcom.foo.Class#method1.ecşeklinde görünüyor. 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ı
- 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
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
Runner
Test çalıştırma ve JUnit özellikleri olmadan
MonitoringInstrumentationcom.android.support.test:monitor:<version>ihtiyacı olan kullanıcılar için monitor maven yapısını ayırın.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.)Sorun 65828576:
TestRequestBuilder,@Ignoreile ek açıklama eklenmiş bir sınıfta testler çalıştırılırken (test çalıştırma veya JUnit özellikleri olmadan bağımsız olarak) kilitleniyor.
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
IdlingPolicyseçeneği eklendi. Bu seçenek,onTimeout()öğesini bastırır. - 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: Kaynaklar JAR dosyasına eksik sınıfları ekleyin.
- 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 işlemi 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.
- Artık eski sonuçlarla eşleşmesi için altbilgide yoksayılan test durumları hariç tutuluyor.
- Çalışma zamanı izni 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ı çizilebilir kaynağıyla eşleşirhasTextColor()TextViewnesnesinin rengiyle eşleşir
- Yeni görüntüleme işlemi yöntemleri:
scrollTo()ListViewöğesinin alt öğeleriyle çalışacak şekilde 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()– Benzerdir.pressBack()ancak Espresso gezinirken istisna oluşturmaz.noActivity()–ViewActionveyaViewAssertionişlemi gerçekleştirmeden önce bir etkinliğin tamamlanmasını bekleme ihtiyacını ortadan kaldırır.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 bağımsız olarak test etme olanağı sağlar. -
JUnitParams'in
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çıklama 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 belirleyebilenRunnerBuilder'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, bağımsız bir enstrümantasyon işlemidir. Her test için bir enstrümantasyon çalıştırıcı işlemi oluşturur ve sonuçları toplar.
- 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, bağımsız bir enstrümantasyon işlemidir. Her test için bir enstrümantasyon çalıştırıcı işlemi oluşturur ve sonuçları toplar.
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öndermelidir. Böylece tüketicilerin bunları eklemesi gerekmez.
- 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 - 37062612 numaralı sorun: NPE in
release() - Sorun 37063389: Guava ve
espresso-web'nınandroidTestbağımlılıkları olarak kullanılması derlenmiyor - Sorun 37070533: Android Design Support Library'de
NavigationViewiçin destek ekleme
- Runner
-
@UiThreadTestile@Test(timeout = 123)birlikte kullanılamama sorununu düzeltme - Sabit
-e notClassrunner arg - JUnit3 ve JUnit4 test paketlerinin yanı sıra
ParameterizedveEnclosedçalıştırıcılarını desteklemek için-e logdüzeltildi. - Sorun 37663530: 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
-
Sorun 37123213:
x86_64 ABI'de
@RequiresDeviceyoksayı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 yürütme, 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. - 37109342 numaralı sorun: 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şEditTextnesnelerindeNullPointerExceptionoluşturuluyor
Diğer önemli değişiklikler
- İkili dosyalar artık Google Maven üzerinden 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ını içeriyor- Yayınlanan yapıtlara
proguard_library.cfgdosyaları ekleme Tapperarayüzünde uygulanacak yeni birsendTap()sürümü var
Harici katkılar
- Espresso
- Runner
- Kurallar
Espresso 2.2.2, Runner/Rules 0.5 (2016-02-22, sessiz sürüm)
Yeni özellikler
- espresso
- Sorun 194253: Android destek tasarım kitaplığında NavigationView desteği ekleme
- Etkinleştirilmiş 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 kalma kaynağını 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 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 ekleyin - 150744:
DrawerActionsartık sızmıyorparentListener - 153303: "Çekmece açık mı kapalı mı?" kontrollerinde yer çekimi belirtiliyor
- 157910:
DrawerLayoutaçma ve kapatma işlemi 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 sorunu 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.
JUnit3stilindeki test zaman aşımları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 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()içinde 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.1ilecom.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 verilerle doldurmasına izin vererek hermetik etkileşim testini etkinleştiren 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: İşlemleri çalıştırmadan ö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 ileti dizisinde (veya kullanıcı arayüzü ileti dizisinde) yürütülmesine izin verir.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 bir 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ş Support Annotations 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 durum) önlemek için isteğe bağlı (Guava bağımlılığı) olan bu özellik herkese açık 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
- Onaylar
PositionAssertions,isLeftOf()veisAbove()dahil: Ekrandaki öğelerin göreli konumunu kontrol etmek içinViewAssertionskoleksiyonuLayoutAssertions: Uluslararasılaştırmayla ilgili düzen testi için onaylar
- 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 derlemeden Gradle ile derlemeye 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.
DrawerActionsDrawerLayoutüzerinde çalışmak için yeni: Android Destek Kitaplığı'na bağımlı 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.