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 (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ı
  • 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
  • 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ık com.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'ı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ı

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.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 com.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'ı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.)

    • Sorun 65828576: TestRequestBuilder, @Ignore ile 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.

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 IdlingPolicy seçeneği eklendi. Bu seçenek, onTimeout() öğesini bastırır.
    • 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: Kaynaklar JAR dosyasına eksik sınıfları ekleyin.
  • Runner

    • Basitleştirilmiş ShardingFilter mantığı.
    • Sorun 65025743: @RequiresDevice filtresi artık FTL emülatörlerini destekliyor.
  • 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.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 bağımsız olarak test etme olanağı sağlar.
    • JUnitParams'in 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çıklama 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 belirleyebilen 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, 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.

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ö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 .pom dosyalarını yerleştiriyor
    • 37062612 numaralı sorun: NPE in release()
    • Sorun 37063389: Guava ve espresso-web'nın androidTest bağımlılıkları olarak kullanılması derlenmiyor
    • Sorun 37070533: 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
    • JUnit3 ve JUnit4 test paketlerinin yanı sıra Parameterized ve Enclosed çalıştırıcılarını desteklemek için -e log dü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 @RequiresDevice 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 yürütme, 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 üzerinden 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ını içeriyor
  • Yayınlanan yapıtlara proguard_library.cfg dosyaları ekleme
  • Tapper arayüzünde uygulanacak yeni bir sendTap() sürümü var

Harici katkılar

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 ViewMatcher API: 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
  • 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 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 ekleyin
    • 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şlemi 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 sorunu 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 stilindeki test zaman aşımlarından sonra test çalıştırıcısındaki tutarsız durum düzeltildi.

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 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() 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.1 ile 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 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() 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 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ı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 bir 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ş Support Annotations 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 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
    • 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
  • Onaylar
    • PositionAssertions, isLeftOf() ve isAbove() dahil: Ekrandaki öğelerin göreli konumunu kontrol etmek için ViewAssertions koleksiyonu
    • LayoutAssertions: Uluslararasılaştırmayla ilgili düzen testi için onaylar
  • 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 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 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 DrawerLayout ü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 install artık çalışmalıdır.