Test Sürüm Notu Arşivi

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ı
  • 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
  • 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'ın coverageFile iş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() ve pm clear targetContext.getPackageName() komutlarını çalıştırmasını istiyorsanız -e clearPackageData iş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

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.ActivityResult nesnesi döndürülmeden önce testlerin yürütülmesine olanak tanınıyor.Intents
  • 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ın com.android.support.test:monitor:<version>.

      com.android.support.test:runner:<version> kullanıyorsanız her şey beklendiği gibi çalışır. Bunun nedeni, Gradle'ın monitor modülünü runner modülünün bağımlılığı olarak otomatik olarak çekmesidir.

    • newRunListenerOrderMode işareti eklendi. true olduğ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: @Ignore ile açıklama eklenmiş bir sınıfta testler çalıştırılırken TestRequestBuilder kilitleniyor (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.

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çin IdlingPolicy seçeneği eklendi.
    • 64024656, 64247586 ve 64525881 numaralı sorunlar: Kullanıcı, -e sı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.
  • Runner

    • Basitleştirilmiş ShardingFilter mantığı.
    • Sorun 65025743: @RequiresDevice filtresi artık FTL emülatörlerini destekliyor.
  • 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.CountingIdlingResource sınıfı silindi ve android.support.test.espresso.idling.CountingIdlingResource sınıfına taşındı.
    • 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.

Bilinen sorunlar

  • AndroidTestOrchestrator
    • -e numShards ve -e shardIndex çalıştırıcı bağımsız değişkenleri şu anda desteklenmemektedir.
    • Parametreli testler şu anda desteklenmemektedir.

Yeni özellikler

  • Runner
    • InterceptingActivityFactory ve SingleActivityFactory: startService() ve sendBroadcast() gibi yöntemleri geçersiz kılarak bir etkinliği dış dünyadan izole bir şekilde test etme olanağı sağlar.
    • JUnitParams'ın AndroidJUnitRunner ile kullanılması için destek eklendi.
    • @UiThreadTest işleme, temel test çalıştırıcı düzeyinde başlatılır ve @UiThreadTestRule desteği sonlandırılır. Bu sayede, @UiThreadTest ek açıklaması doğrudan @Before ve @After ile ek açıklama eklenmiş yöntemlerde kullanılabilir.
    • @SdkSupress ek açıklaması artık maxSdkVersion değ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 belirleyebilecek RunnerBuilder'nin kendi uygulamalarını sağlamalarına olanak tanır.
  • Kurallar
  • 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.

Hata düzeltmeleri

  • Espresso
    • Kusurları önemli ölçüde azaltmak için kök görünümü senkronizasyonu iyileştirildi.
    • IdlingResourceRegistry bozulmasını düzeltme
    • IdlingResource nesnelerle 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 .pom dosyalarını yerleştiriyor
    • Sorun 37062612: NPE in release()
    • Sorun 37063389: Guava ve espresso-web'nın androidTest bağımlılıkları olarak kullanılması derlenmiyor
    • Sorun 3707070533: Android Design Support Library'de NavigationView için destek ekleme
  • Runner
    • @UiThreadTest ile @Test(timeout = 123) birlikte kullanılamama sorununu düzeltme
    • Sabit -e notClass runner arg
    • -e log, JUnit3 ve JUnit4 test paketlerinin yanı sıra Parameterized ve Enclosed ç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: AndroidJUnitRunner iç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 ProviderTestCase2 ile başlatılmadı (NullPointerException neden oluyor)

Diğer önemli değişiklikler

  • İkili dosyalar artık Google Maven aracılığıyla yayınlanıyor
  • espresso-core ve espresso-web JAR dosyalarının boyutu küçültüldü. Yerleştirilmiş bağımlılıklara artık ProGuard uygulanıyor.
  • .aar dosyalarının tümü artık ProGuard kuralları içeriyor
  • Yayınlanan yapılara proguard_library.cfg dosya ekleme
  • Tapper arayüzünde uygulanacak sendTap()'ın yeni bir sürümü var.

Harici katkılar

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 ViewMatcher API: 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
  • runner
    • 196066 numaralı sorun: AndroidJUnitRunner içindeki -e log true bağı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

Diğer önemli değişiklikler

  • ActivityTestRule, UiThreadTestRule, IntentsTestRule ve ServiceTestRule beta 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
    • IntentsTestRule ile tam uyumlu olacak yeni IntentsTestRule oluş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

Harici katkılar

  • espresso
    • 157911: Bir EditText nesnesinde giriş türü için görünüm eşleştirici ekleme
    • 157912: EditText nesnesindeki hata metnini eşleştirmek için görünüm eşleştirici ekleyin
    • 150674: Rastgele yerçekimi olan çekmeceler için DrawerActions desteği ekleme
    • 150744: DrawerActions artık sızmıyor parentListener
    • 153303: "Çekmece açık mı kapalı mı?" kontrollerinde yer çekimi belirtiliyor
    • 157910: DrawerLayout açma ve kapatma işlemini ekleyin fabrikalar

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 ServiceTestRule düzeltildi. startService() her zaman açık bir Intent ile çağrılmalıdır.
  • runner
    • Bozuk Gradle JaCoCo desteği düzeltildi.
    • Bozuk test parçalama desteği düzeltildi.
    • JUnit3 stil testi zaman aşımlarından sonra test çalıştırıcıdaki tutarsız durum düzeltildi.

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 WebView desteği
  • 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
    • DrawerActions yer çekimi desteği
  • rules 0.3
    • DisableOnAndroidDebug kural
  • runner 0.3
    • JUnit v4.10'dan JUnit v4.12'ye yükseltme
    • Hamcrest v1.3 kullanacak şekilde taşındı

Hata düzeltmeleri

  • DrawerActions sızıntısı ParentListener düzeltildi
  • Varsayım hatası artık başarısız test yerine yoksayma testi olarak değerlendiriliyor.
  • MonitoringInstrumentation cihazının ExecutorService ü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.1 iken com.android.support.test:runner:0.2 ve com.android.support.test:rules:0.2 olarak 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() resId aşırı yüklenmesi
  • kurallar
    • ActivityTestRule: Bu kural, tek bir etkinliğin işlevsel testini sağlar.
    • UiThreadRule ve UiThreadTest ek açıklamaları: Bu kural, UiThreadTest ile 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ık File veya OutputStream kabul edebilir.

Hata düzeltmeleri

  • espresso
    • İmleç eşleştirici, sütun bulunamadığında artık false döndürüyor. Böylece Hamcrest, sonraki imlece geçebiliyor.
    • NullPointerException ile PreferenceMatchers withTitle artı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ü
  • runner
    • AndroidJUnit4 artı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.espresso olan ad alanından android.support.test.espresso olan yeni bir ad alanına taşındı.
  • Espresso yapıları yeniden adlandırıldı
    • espresso-1.1.jar adlı bankanın yeni adı espresso-core-release-2.0.jar
    • IdlingResource arayüzü ayrı bir kitaplığa taşındı: espresso-idling-resource-release-2.0.jar
    • CountingIdlingResource artık espresso-contrib-release-2.0.jar iç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
    • ViewActions
      • replaceText()
      • openLink()
      • Yukarı ve aşağı kaydırma
    • espresso-contrib
      • RecyclerViewActions: RecyclerViews ile etkileşimleri yönetir
      • PickerActions: Date ve Time seçicilerle etkileşimleri yönetir.
  • Eşleştiriciler
    • RootMatchers
      • isPlatformPopup()
    • ViewMatchers
      • isJavascriptEnabled()
      • withSpinnerText()
      • withHint()
      • isSelected()
      • hasLinks()
    • LayoutMatchers: i18n ile ilgili düzen testi için eşleştiriciler
    • CursorMatchers: Cursor nesneleri için eşleştiricilerden oluşan bir koleksiyon
  • İddialar
    • PositionAssertions, isLeftOf() ve isAbove() dahil: Öğelerin ekrandaki göreli konumunu kontrol etmek için ViewAssertions koleksiyonu
    • LayoutAssertions: Uluslararasılaştırmayla ilgili düzen testi için onaylamalar
  • Test uygulaması: Birçok yeni örnek etkinlik/test
  • Diğer
    • Espresso.unregisterIdlingResources() ve Espresso.getIdlingResources(): IdlingResources ile çalışırken daha fazla esneklik sağlar.
    • ViewInteraction.withFailureHandler(): onView() konumundaki hata işleyicinin geçersiz kılınmasına izin verir.
    • CursorAdapters tarafından desteklenen AdapterViews için onData() 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ık IdlingResourceTimeoutException ile 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 swipeLeft ve swipeRight ViewActions
  • Çoklu pencere desteği: Espresso'nun işlemi çalıştıracağı hedef pencerenin seçilmesini sağlayan gelişmiş bir özellik
  • TypeTextAction ile 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 yeni DrawerLayout: 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 install artık çalışmalıdır.