Test Sürüm Notu Arşivi

AndroidX Test Espresso 3.1.1, Runner 1.1.1, Kural 1.1.1, Monitor 1.1.1 AndroidTestOrchestrator 1.1.1, Core 1.1.0, Truth 1.1.0, JUnit 1.1.0 (2018-12-13)

Bu, AndroidX Test 1.1.0'ın kararlı sürümüdür.

  • Temel
    • Başka bir etkinlik başlatan Etkinlik Senaryosu destek etkinlikleri oluşturma

AndroidX Test Espresso 3.1.1-beta01, Runner 1.1.1-beta01, Kural 1.1.1-beta01, Monitör 1.1.1-beta01 AndroidTestOrchestrator 1.1.1-beta01, Core 1.1.0-beta01 Truth 1.1.0-beta801, J201.0-beta01

  • Temel
    • Yeni core ktx kotlin uzantısı yapısı! kotlin dostu bir ActivitySenaryo.launchActivity API içerir
    • Özel amaçlı etkinlikleri başlatmak için yeni ActivitySenaryo API'si
    • Etkinlik sonucu almak için yeni ActivitySenaryo API'si
    • Etkinlik Senaryosunu kapatılabilir hale getirin
  • Espresso
    • withResourceNameMatcher ve HumanReadables öğesini API 28 ile uyumlu olacak şekilde değiştirin.
    • ChangeTextAction'ın açıklamasını, stringToBeSet öğesini içerecek şekilde güncelleyin
    • Robofactric duraklatılmış döngü modunda Espresso desteği.
  • JUnit
    • Test kurulumu ve yayından kaldırma sırasında bir Etkinliği otomatik olarak başlatmak ve kapatmak için kullanılan yeni ActivitySenaryoRule API'si
    • Yeni junit-ktx kotlin uzantısı yapısı! Kotlin'e uygun bir ActivitySenaryoRule API'si içerir.
  • Koşucu
    • Paketleri alırken -e paket ve -e testFile öğelerinin tutarlı bir davranış göstermesini sağlayın
  • Gerçek
    • Bool, parcelable ve parcelableAsType BundleSubject API'leri ekleyin

AndroidX Test Espresso 3.1.0, Runner 1.1.0, Kural 1.1.0, Monitor 1.1.0 AndroidTestOrchestrator 1.1.0, Core 1.0.0 Truth 1.0.0, JUnit 1.0.0 (2018-10-24)

  • Tümü
    • minSdkVersion seçeneğini 14, targetSdkVersion seçeneğini 28 olarak ayarlayın
  • Espresso
    • Dize olmayan türlerle çalışması için withContentDescription sorununu düzeltin
    • Roboecric'te Espresso kullanma desteği ekleyin
    • Sorun 72798625: textAllCaps etkinleştirildiğinde Espresso ViewMatchers.withText çalışmıyor
    • Hareket etkinlikleri dizisi ekleme desteği eklendi
  • Niyetler
    • Amaç listesini almak için beta API'yi ekleyin. Yeni doğruluk iddialarıyla kullanılmak üzere tasarlanmıştır
  • Koşucu
    • Hazır uygulamalar için destek ekleme
    • androidx.test.runner.AndroidJUnit4'ü kullanımdan kaldırın ve androidx.test.ext.junit.runners.AndroidJUnit4 ile değiştirin
  • İzleyin
    • androidx.test.instrumentationRegistry desteğini sonlandırıp androidx.test.platform.app.instrumentationRegistry ve androidx.test.core.app.ApplicationProvider ile değiştirin.
  • AndroidTestOrchestrator
    • Orkestratör kapsamı işlemesini yalnızca hem "coverage" hem de "coverageFilePath" bağımsız değişkenleri aktarılırsa etkinleştirin.
    • Hata ayıklayıcıyı yalnızca -debug ayarlandığında bekleyin, ancak ATO test durumlarını listelemek için bekleyin. Orkestraların kendisinde hata ayıklama için yeni bir orchestratorDebug işareti eklendi
  • Temel
    • Yeni yapı! Şunlar için hem yerel hem de cihaz üzerinde testleri destekleyen yeni API'ler içerir:
      • Bağlam alınıyor: ApplicationProvider
      • Etkinlik yaşam döngülerini kontrol etme: ActivitySenaryo(beta)
      • MotionEvent, PackageInfo için oluşturucular
      • Parceables yardımcı sınıfı
  • Gerçek
    • Yeni yapı! Bildirim, Amaç, Paket, Parcelable ve MotionEvent için özel veri konuları içerir
  • JUnit
    • Yeni yapı! Hem yerel hem de cihaz üzerinde testleri destekleyen androidx.test.ext.junit.runners.AndroidJUnit4 JUnit çalıştırıcı sınıfını içerir.

Espresso 3.0.2-beta1, Runner 1.0.2-beta1, Kural 1.0.2-beta1, Monitor 1.0.2-beta1, AndroidTestOrchestrator 1.0.2-beta1 (16.04.2018)

  • Espresso
    • Breaking API Değişikliği:
      • 64062890. Sayıda, herkese açık API'mizde Guava Optional'ı kullandığımızı fark ettik. Bu bizim açımızdan korkunç bir ihmaldi . Sonuç olarak, bu sorunu düzeltmek için bu sürümde genel bir API değişikliği yapıldı. Guava Optional sınıfının etrafında, "android.support.test.espresso.util" ad alanının altında bulunan EspressoOptional adlı çirkin bir sarmalayıcıyı kullanıma sunduk. Sızdırılan Guava Optional API'yi kullanan geliştiricilerin, bu yeni sürüme güncelleme yaparken içe aktarma işlemlerini ve referanslarını EspressoOptional'ı kullanacak şekilde değiştirmeleri gerekmektedir. Bu durumun neden olabileceği aksaklıklar için özür dileriz.
    • onView() ve onData() API'leri hataları önlemek için artık @CheckReturnValue olarak işaretlendi
    • Espresso çekirdekli POM dosyasının "kurallar" bağımlılığını çekmemesi, bunun yerine espresso yoğunlu POM dosyasının çekmesi düzeltildi. Espresso özütleri espresso çekirdeği olmadan kullanılamayacağı için bu, geliştiriciler açısından bir NoOp değişikliği olacaktır.
    • Sorun 65486414: Espressoda guava bağımlılığı eksik
    • Sorun 65576174: Espresso IdlingResourceRegistry.sync ikinci test başarısız olmasına neden oluyor
    • Sorun 65568629: Espresso.onIdle, IdlingRegistry'yi kullanmıyor
    • Sorun 69333598: espresso 3.0.1, Android kitaplık modülünde play-services-auth:11.6.0 ile uyumlu değil.
    • Sorun 64062890: AdapterViewProtocol arayüzü tarafından gösterilen Dahili İsteğe bağlı tür,
    • Sorun 64091847: Espresso 3.0.0, test çalıştırıcısına bağlı OLMAMALIDIR
    • Sorun 73722050: espresso-contrib 3.0.2-alpha1 paketleri android.arch.{lifecycle/core} sınıfları
  • Espresso-uzaktan
    • Bu yepyeni bir eserdir. Espresso'nun tüm çoklu işlem işlevlerini, espresso çekirdekli eserleri dışında birbirinden ayırdık. Böylece daha temiz olur ve espresso-çekirdeklerin toplam boyutu ve yöntemi sayısı önemli ölçüde azalır.
  • Koşucu
    • Bir bağlayıcı işlemi için çok büyükse yığın izlemeyi (stack trace) kısaltın. AJUR'un hataları bir bağlayıcı IPC yoluyla hesap yöneticisine bildirmesi gerektiğinden, işlem başına 1 MB olan Bağlayıcı işlem sınırını aşmadığımızdan emin olmamız gerekir.
    • Sorun 65828576: Sınıfta @Yoksay ile test çalıştırılırken TestRequestBuilder kilitlenmesi
    • Sorun 37057596: @BeforeClass içindeki hataları ele almayız
  • Kurallar
    • Yaşam döngüsü değişikliklerinden sonra test edilen etkinlikle ilgili bir referans yayınladığınızdan emin olun. Test sırasında kullanıcı artık #getActivity() yönteminden alınan referansı kullanarak Etkinliği doğrudan değiştirebilir. Etkinlik bitip yeniden başlatılırsa, #getActivity() tarafından döndürülen referans artık her zaman Etkinlik'in mevcut örneğini işaret ediyor.
    • Sorun 64389280: GrantPermissionRule WRITE_EXTERNAL_STORAGE sağlamıyor
    • Sorun 37065965: ActivityTestRule, yön değişikliğinden sonra etkinliği sızdırıyor
    • Sorun 75254050: ActivityTestRule, yapılandırma değişiklikleri sırasında Etkinlik örneğini güncellemiyor
    • Sorun 64464625: Etkinliğin bitirme() yönteminde kullanıcı arayüzü çalışması yapılamıyor
  • AndroidTestOrchestrator
    • Belirtilen konumda kapsam dosyaları oluşturmak için -e coverage true -e coverageFilePath /sdcard/foo/ işaretlerini iletin (Uygulamanın belirtilen konuma yazma izni olmalıdır). Kapsam dosyası adlandırma kuralı artık şu com.foo.Class#method1.ec şeklinde görünür. Bunun yalnızca izole modda çalışırken desteklendiğini unutmayın. Ayrıca, AndroidJUnitRunner'ın coverageFile işaretiyle birlikte kullanılamaz. Oluşturulan kapsam dosyaları birbirinin üzerine yazılır.
    • Orkestratörün test çağrıları arasında pm clear context.getPackageName() 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 bağlamı altındaki Uygulama olduğunu unutmayın.
    • Düzeltildi - Hedef içinde @Test olmayan, yani boş bir test çalıştırırken, test sonucu eski moddan farklı.
    • Sorun 72758547: Test Orkestratörü, Jacoco Kapsam Verilerinin eksik olmasına neden oluyor. Yalnızca son test çalıştırması verileri bulunuyor.
    • Sorun 67916042: Android Test Orkestratörü : OutOfMemory nedeniyle yürütme, İşlem kilitlenmesinde durdu
    • Sorun 77752735: TransactionTooLargeException için Orchestrator kilitleniyor
    • Sorun 77549481: Test Orkestratörü Her Testten Sonra "pm Açık" Olarak Çalışmalıdır

Espresso 3.0.2-alpha1, Çalıştırıcı 1.0.2-alpha1, Kural 1.0.2-alpha1, AndroidTestOrchestrator 1.0.2-alpha1 (05.12.2017)

  • Espresso

    • Intents artık çağrılabilir bir yanıta sahip. Bu sayede, tetiklenen bir amaç yakalandıktan sonra ancak Instrumentation.ActivityResult nesnesi döndürmeden önce testler yürütülebilir.
  • Koşucu

    • Test çalıştırmadan ve JUnit özelliklerine ihtiyaç duymadan MonitoringInstrumentation ihtiyacı olan kullanıcılar için monitör yapısını com.android.support.test:monitor:<version> ayırın.

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

    • newRunListenerOrderMode işareti eklendi. true durumunda, kullanıcı tanımlı işleyiciler varsayılan işleyicilerden önce çalışır. (Bu davranışın zaman içinde varsayılan hale gelmesini bekliyoruz.)

    • Sorun 65828576: @Ignore ek açıklamasına sahip bir sınıfta (test çalışması olmadan bağımsız sürüm veya JUnit özellikleri olmadan) testler çalıştırılırken TestRequestBuilder kilitleniyor.

  • AndroidTestOrchestrator

    • Artık boş testleri düzenlenmemiş AndroidJUnitRunner ile aynı şekilde işler.
    • Orkestratör artık AndroidJUnitRunner kaynağından çok büyük standart çıkışları işleyebilir.

Espresso 3.0.1, Runner 1.0.1, Kural 1.0.1, AndroidTestOrchestrator 1.0.1 (28.08.2017)

  • Espresso

    • Sanal makineye adım hata ayıklayıcı eklendiğinde onTimeout() politikasını engellemek için bir 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üklemeleriyle ilgili hataları bildirmeyin.
    • Sorun 64877246: Kaynak JAR dosyasına eksik sınıfları ekleme.
  • Koşucu

    • 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 çöktüğünde artık test için yalnızca bir hata bildirilmektedir.
    • Orchestrator için Javadoc düzeltildi.
    • Uzak işlem kilitlenirse artık testler kaçırıldı olarak gösterilir.
    • Artık yoksayılan test durumlarını işliyor.
    • Artık eski sonuçları eşleştirmek için yoksayılan test durumlarını altbilgiden hariç tutar.
    • Çalışma zamanı izniyle ilgili sorunlar düzeltildi. Test raporları artık Android 7.0 (API düzeyi 24) ve sonraki sürümlerde SD karta yazılıyor.

Espresso 3.0.0, Runner 1.0.0, Kural 1.0.0, AndroidTestOrchestrator 1.0.0 (25.07.2017, Duyuru)

Zarar veren değişiklikler

  • Tüm yapılar
    • 15'in altındaki API düzeyleri için destek bırakılıyor ancak minimum SDK, kullanıcılara yükseltmeleri için zaman vermek amacıyla API düzeyi 9'a işaret ediyor
  • Espresso
    • Kullanımdan kaldırılan android.support.test.espresso.contrib.CountingIdlingResource sınıfı silindi ve şu konuma taşındı: android.support.test.espresso.idling.CountingIdlingResource
    • Guava artık farklı bir "dahili" ad alanına sarılmış durumda. Espresso ad alanları üzerinden yanlışlıkla Guava API'yi kullanırsanız bozulmalar görebilirsiniz
      • Gölgeli Guava'ya (.core.deps.guava.) yapılan tüm referansları kaldırın
      • Destek Kitaplığı sürümünüzü 25.4.0 veya daha yeni bir sürüme yükseltin

Bilinen sorunlar

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

Yeni özellikler

  • Koşucu
    • InterceptingActivityFactory ve SingleActivityFactory: startService() ve sendBroadcast() gibi yöntemleri geçersiz kılarak bir etkinliğin dış dünyadan ayrı bir yerde test edilmesine olanak tanır
    • JUnitParams AndroidJUnitRunner ile kullanma desteği ekleyin
    • @UiThreadTest'i temel test çalıştırıcı düzeyinde işlemeye başlayın ve @UiThreadTestRule özelliğini kullanımdan kaldırın. Bu sayede, @UiThreadTest ek açıklamasını doğrudan @Before ve @After ek açıklaması bulunan yöntemlerde kullanabilirsiniz.
    • @SdkSupress ek açıklaması artık maxSdkVersion değerini destekliyor (Sorun 37067792)
    • -e classLoader - Çalıştırıcı bağımsız değişkenlerini kullanarak sınıf yükleyicileri geçirme olanağı sağlayın
    • -e filter – Çalıştırıcı bağımsız değişkenleri kullanılarak belirtilecek özel JUnit filtreleri için destek ekleyin
    • -e runnerBuilder – Geliştiricilerin, belirli bir sınıfa karşı çalışıp çalışmayacaklarını ve nasıl çalışacaklarını belirleyen kendi RunnerBuilder uygulamalarını sunmalarına olanak tanır.
  • Kurallar
  • AndroidTestOrchestrator
    • Android Test Orchestrator, düzeltmeye ve izolasyona odaklanarak testleri toplamak ve çalıştırmak için yeni bir yol sunar. Orkestratör, her test için bir enstrümantasyon çalıştırıcı işlemi üreten ve sonuçları toplayan bağımsız bir enstrümantasyon sürecidir.
      • Uygulama kilitlenmeleri, orkestratörü değil çalıştırıcı enstrümantasyonunu devre dışı bırakarak test paketinizin çalışmaya devam etmesini sağlar
      • Düzenleyici APK'nın yüklenmesini gerektirir – 'com.android.support.test:orchestrator:1.0.0'
      • 1.0 sürümünde yalnızca komut satırı arayüzü vardır. Android Studio ve Firebase Test Labs ile entegrasyon sağlanması planlanmaktadır

Hata düzeltmeleri

  • Espresso
    • Yavaşlığı önemli ölçüde azaltmak için kök görünümü senkronizasyonu iyileştirildi
    • IdlingResourceRegistry bozukluğunu düzeltin
    • IdlingResource nesnesiyle daha iyi senkronizasyon
    • Sorun 37132680: Espresso, bir sonraki işlemi gerçekleştirmeden önce diyalog oluşturma işleminin tamamlanmasını beklemiyor
    • Sorun 37103280: Espresso'nun, ProGuard tüketici kurallarını göndermesi ve böylece tüketicilerin bunları ekleme zorunluluğunu ortadan kaldırması gerekiyor
    • Sorun 37094726: Espresso Intents, gereksiz uygulama etiketi içeriyor
    • Sorun 37093953: Espresso: Boş/boş hata metni için kontrol yok
    • Sorun 37071776: espresso-core, Guava'nın .pom dosyalarını yerleştiriyor
    • Sorun 37062612: release() bölgesinde NPE
    • Sorun 37063389: androidTest bağımlılıkları derlenmediği için Guava ve espresso-web bulunması
    • Sorun 37070533: Android Tasarım Destek Kitaplığı'nda NavigationView için destek ekleme
  • Koşucu
    • @UiThreadTest özelliğini @Test(timeout = 123) ile birlikte kullanma özelliğini düzeltin
    • -e notClass koşucu bağımsız değişkeni düzeltildi
    • -e log, JUnit3 ve JUnit4 test paketlerini ve Parameterized ile Enclosed koşucularını destekleyecek şekilde düzeltildi
    • Sorun 37663530: Her test yönteminden önce ve sonra tüm etkinliklerin tamamlanmasını bekleyin
    • Sorun 37132680: Espresso, bir sonraki işlemi gerçekleştirmeden önce iletişim kutusunun oluşturulmasını beklemiyor
    • Sorun 37123213: @RequiresDevice x86_64 ABI'de yoksayıldı
    • Sorun 37101485: AndroidJUnitRunner için manifest tarafından sağlanan bazı bağımsız değişkenler (ör. test boyutu, ek açıklama ve hata ayıklama) yok sayılıyor
    • Sorun 37082857: Statik nesnelerde Espresso yarı paralel test yürütme başarısız oluyor
    • Sorun 37063396: Bağlam ProviderTestCase2 ile başlatılmadı (NullPointerException sorununa neden olur)

Diğer önemli değişiklikler

  • İkili programlar artık Google Maven aracılığıyla yayınlanıyor
  • espresso-core ve espresso-web JAR dosyasının boyutu küçültüldü: Yerleştirilmiş bağımlılıklara artık ProGuard uygulanıyor
  • Tüm .aar dosya artık ProGuard kuralları içeriyor
  • Serbest bırakılan yapılara proguard_library.cfg dosyayı ekleyin
  • Tapper arayüzünün uygulanması için sendTap()'in 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'si: withResourceName()

Hata düzeltmeleri

  • espresso
    • Sorun 195331: Espresso-core guava pom dosyalarını yerleştiriyor
    • Boştaki sayma kaynağı espresso-contrib'den taşındı
  • kurallar
    • Sorun 187249: Intents.release() bölgesinde NPE
  • koşucu
    • Sorun 196066: AndroidJUnitRunner içindeki -e log true bağımsız değişkeni gerçek testi atlamıyor
    • Çalıştırıcının onCreate() tanesinde hata ayıklayıcıyı bekleyin
    • Desteklenen tüm test ek açıklamaları platformdan ATSL'ye taşındı
    • Hiçbir JSBridge ile ilgili yığın izleme dökümü kaldırıldı
    • AndroidAnnotatedBuilder düzeltildi

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/Kurallar 0.4 (15.09.2015)

Yeni özellikler

  • kurallar
    • ActivityTestRule ile tamamen uyumlu olacak yeni IntentsTestRule kurucusu eklendi
  • koşucu
    • API düzeyleri 15 ve önceki sürümler için özel büyük harf kullanımı içeren çokludex yüklemesi eklendi
    • Sınıfa ve pakete hariç tutma filtreleri eklendi:
      • Belirli bir sınıftakiler hariç tüm testleri çalıştırma: adb shell am instrument -w -e notClass com.android.foo.FooTest
      • Tek bir test hariç tümü çalıştırılıyor: adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo
      • Belirli bir paket hariç tüm testleri çalıştırma: adb shell am instrument -w -e notPackage com.android.foo.bar

Harici katkılar

  • espresso
    • 157911: Bir EditText nesnesindeki giriş türü için görünüm eşleştirici ekleyin
    • 157912: EditText nesnesinde eşleşen hata metni için görünüm eşleştirici ekleyin
    • 150674: İsteğe bağlı yer çekimine sahip çekmeceler için DrawerActions desteği ekleyin
    • 150744: DrawerActions artık sızdırılmıyor parentListener
    • 153303: "Çekmece açık mı kapalı mı" kontrollerinde belirtilen yer çekimi
    • 157910: DrawerLayout Open and close action fabrikalarını ekleyin

Hata düzeltmeleri

  • espresso
    • ViewActions.closeSoftKeyboard() artık yazılım klavyesinin tamamen kaldırılmasını sağlıyor
    • API düzeyi 21 ve sonraki sürümler için Espresso'nun Espresso.pressBack() yöntemiyle ilgili senkronizasyon sorunu düzeltildi
    • API düzeyi 23'te klavye kapatma animasyonlarının senkronizasyonu düzeltildi
  • kurallar
    • API düzeyi 23'teki ServiceTestRule düzeltildi. startService() her zaman açık bir Intent ile çağrılmalıdır
  • koşucu
    • Bozuk gradle JaCoCo desteği düzeltildi
    • Bozuk test parçalama desteği düzeltildi
    • JUnit3 stil testi zaman aşımı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 filtrelerini kullanırken suite() yöntemlerini yoksayın ve başlatma hatalarını yoksaymayın

Espresso 2.2 / ATSL 0.3 (09.06.2015)

Yeni özellikler

  • espresso-web 2.2
    • Yeni WebView desteği
  • espresso-çekirdek 2.2
    • Hançer v2'yi kullanmak için taşındı
    • Hamcrest v1.3 kullanımı için geçiş yapıldı
  • espresso-contrib 2.2
    • Erişilebilirlik kontrolleri
    • DrawerActions yer çekimi desteği
  • kural 0.3
    • DisableOnAndroidDebug kural
  • koşucu 0.3
    • JUnit v4.10'dan JUnit v4.12'ye yükseltme
    • Hamcrest v1.3'ü kullanmak üzere taşındı

Hata düzeltmeleri

  • DrawerActions uygulamasının ParentListener sızıntısı düzeltildi
  • Varsayım hatası artık başarısız test yerine yoksayma testi olarak değerlendiriliyor
  • ExecutorService üzerinden MonitoringInstrumentation sızıntısı olan etkinlik örneği düzeltildi
  • Durdurulan aşamada takılı kalan artık etkinlikler için düzeltildi
  • Kaydırma etkinliği oluşturulmamışsa Until.scrollFinished() değerini "true" (doğru) döndürmesi için güncelleyin. UiObject2#setText() bölgesinde olası NPE'ye karşı kendinizi koruyun.

Espresso 2.1, Test Runner/Kurallar 0.2 ve UIAutomator 2.1.0 (21.04.2015)

Zarar veren değişiklikler

  • Test çalıştırıcı yapısı ikiye bölündü ve com.android.support.test:testing-support-lib:0.1 olan adı 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 niyetleri doğrulamasını ve saptırmasını sağlayarak hermetik etkinlik arası testi sağlayan Mockito benzeri bir API
    • IntentsTestRule: ActivityTestRule kapsamını genişletir, başlatılır ve yayınlar İşlevsel kullanıcı arayüzü testlerinde Espresso-Intents
  • espresso-çekirdek
    • ViewActions: İşlemleri yürütmeden önce genel onayları çalıştırma özelliği eklendi. Bu, mevcut Espresso test paketi yürütülürken görünüm hiyerarşisinin durumunu doğrulamak amacıyla Espresso üzerine inşa edilen diğer çerçeveler için faydalıdır
    • ViewMatchers.withContentDescription() resId aşırı yük
  • kurallar
    • ActivityTestRule: Bu kural, tek bir etkinliğin işlevsel testini sağlar
    • UiThreadRule ve UiThreadTest ek açıklamaları: Bu kural, UiThreadTest ek açıklamasına sahip test yönteminin uygulamanın ana iş parçacığında (veya kullanıcı arayüzü iş parçacığında) yürütülmesine olanak tanır.
    • ServiceTestRule: Bu kural, bir hizmetin işlevsel test edilmesini sağlar
  • koşucu
    • ApplicationLifecycleCallback: Uygulama yaşam döngüsü etkinliklerini izlemek için geri çağırma
    • Tüm çalıştırıcı bağımsız değişkenleri artık Android manifest dosyasında da <meta-data> etiketi kullanılarak belirtilebilir
  • UIAutomator
    • UiDevice.dumpWindowHierarchy() artık File veya OutputStream kabul edebilir

Hata düzeltmeleri

  • espresso
    • Sütun bulunamadıysa imleç eşleştirici artık false değerini döndürerek Hamcrest'in bir sonraki imlece devam edebilmesini sağlıyor
    • PreferenceMatchers withTitle ile NullPointerException artık gerçekleşmiyor
    • Boşta olan kaynağın kaydının iptal edilmesi, Espresso'nun artık kaynakları boşta durdurduğunu düşünmesine neden olmuyor
    • Espresso Contrib tarafından kullanılan güncellenmiş Destek Ek Açıklamaları sürümü
  • koşucu
    • AndroidJUnit4 artık başarısız varsayımlarla testleri atlıyor
  • UIAutomator
    • İzlemecileri çalıştırarak StaleObjectException olmasını engelleyin

Diğer önemli değişiklikler

  • Latin olmayan bir dizeyle metin yazamadığımızda daha iyi hata mesajı ekle

UIAutomator 2.0 (12.03.2015)

Artık Android Enstrümantasyonu'na dayanan UI Automator, ./gradlew connectedCheck komutunu kullanarak testler oluşturup çalıştırabilirsiniz.

Espresso Sürüm 2.0, Test Runner 0.1 (Yayınlanma tarihi: 19.12.2014)

Zarar veren değişiklikler

  • Espresso, android.support.test.espresso konumundan android.support.test.espresso konumuna taşındı.
  • Espresso eserleri yeniden adlandırıldı
    • espresso-1.1.jar artık 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 konumunda bulunuyor (her zaman olması gerektiği gibi)
  • İsteğe bağlı (guava bağımlılığı), guava bağımlılığının yeniden paketlenmesini desteklemek ve DEX çakışmasını (geliştirme sorunlarının önemli bir kaynağı) önlemek için genel API'den kaldırılmıştır. Bu durumdan etkilenen yöntemler şunlardır:
    • ViewAssertion.check()
    • HumanReadables.getViewHierarchyErrorMessage()

Yeni özellikler

  • İşlemler
    • ViewActions
      • replaceText()
      • openLink()
      • Yukarı ve aşağı kaydırın
    • espresso-kontrib
      • 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şleyiciler
    • CursorMatchers: Cursor nesne için eşleştirici koleksiyonu
  • Onaylar
    • isLeftOf() ve isAbove() dahil PositionAssertions: Ekrandaki öğelerin göreli konumunu kontrol etmek için ViewAssertions koleksiyonu
    • LayoutAssertions: i18n ile 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 ek esneklik sağlar.
    • ViewInteraction.withFailureHandler(): onView() öğesinden hata işleyicinin geçersiz kılınmasına izin verir.
    • AdapterViews için onData() desteği CursorAdapters tarafından destekleniyor

Hata düzeltmeleri

  • ViewMatchers.isDisplayed(), tüm ekranı kaplayan ancak artık% 90'dan az olmayan görüntülemelerle eşleşir
  • DrawerActions.openDrawer() için kaydırma işlemi çağrısı yapıldığında artık IdlingResourceTimeoutException sonucu elde edilmez

Diğer önemli değişiklikler

  • Maven ile derlemeden Gradle'a geçildi
  • DEX kazalarını önlemek için Espresso bağımlılıkları (Guava, Dagger, Hamcrest) ortadan kaldırıldı
  • Boşta tutulan kaynaklar kaydettirilirken ve bunların kaydı iptal edilirken başarılı veya başarısız sonuç döndürülecek şekilde değiştirildi
  • Lollipop desteği: Sürümle ilgili değişiklikleri hesaba katmak için message.recycle() uygulamasını bir arayüzün arkasına yerleştirin
  • Hedef SDK düzeyi 21 olarak değiştirildi - çoğunlukla test uygulamasını etkiliyor

Sürüm 1.1 (Yayınlanma tarihi: 08.01.2014)

Espresso

  • Yeni swipeLeft ve swipeRight ViewActions
  • Çoklu pencere desteği: Espresso'nun işlemi çalıştırması gereken hedef pencerenin seçilmesini sağlayan gelişmiş bir özelliktir.
  • TypeTextAction ile ilgili iyileştirmeler: Önceden odaklanmış bir görünümde metin yazılmasını sağlayarak metin eklemeyi kolaylaştırır
  • Çok sayıda hata düzeltmesi

Espresso Katkı Kütüphanesi

  • Bu yeni kitaplık, Espresso'yu destekleyen ancak temel kitaplıkta yer almayan özellikler içeriyor
  • DrawerLayout üzerinde çalışmak için yeni DrawerActions: Android Destek Kitaplığı'na bağımlı olduğu için bu kitaplığı temel Espresso kitaplığının dışında tutacağız

Örnek Testler

  • Bu testler, test uygulamasıyla aynı pakette yayınlanmak üzere taşınmıştır
  • Maven POM'lar, yinelenen guava dep'lerini kaldıracak şekilde düzeltildiğinden mvn install artık çalışıyor