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ı
- Yeni yapı! Şunlar için hem yerel hem de cihaz üzerinde testleri destekleyen yeni API'ler içerir:
- 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ı
- Breaking API Değişikliği:
- 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 şucom.foo.Class#method1.ec
şeklinde görünür. Bunun yalnızca izole modda çalışırken desteklendiğini unutmayın. Ayrıca, AndroidJUnitRunner'ıncoverageFile
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()
vepm 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
- Belirtilen konumda kapsam dosyaları oluşturmak için
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 ancakInstrumentation.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ığı olarakmonitor
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ırkenTestRequestBuilder
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.
- Artık boş testleri düzenlenmemiş
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 birIdlingPolicy
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.
- Sanal makineye adım hata ayıklayıcı eklendiğinde
Koşucu
- Basitleştirilmiş
ShardingFilter
mantığı. - Sorun 65025743:
@RequiresDevice
filtresi artık FTL emülatörlerini destekliyor.
- Basitleştirilmiş
AndroidTestOrchestrator
- Rapor hatalarını tekrarlamayın. Bir test süreci başarısız olduktan sonra çö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
registerIdlingResources()
yerinegetInstance().register()
alanını kullanma
- 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
- Gölgeli Guava'ya (
- Kullanımdan kaldırılan
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
- Espresso
- Yeni MultiProcess Espresso
espresso-core
veespresso-web
için API 26 desteği var ancak değilespresso-contrib
- Yeni ve basit
IdlingRegistry
APIcom.android.support.test.espresso:espresso-idling-resource:3.0.0
kapsamında yayınlandı- Kullanımdan kaldırılan yöntemler:
Executors
ile senkronizasyona yardımcı olacak yeni API- Yeni maven yapısı:
com.android.support.test.espresso.idling:idling-concurrent:3.0.0
IdlingScheduledThreadPoolExecutor
veIdlingThreadPoolExecutor
sı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
UriIdlingResource
sınıfını içerir
- Yeni maven yapısı:
- Yeni
espresso-core
görünüm eşleştiriciler:hasBackground()
, birView
nesnesinin arka plan çekilebilir kaynağıyla eşleşiyor.hasTextColor()
birTextView
nesnesinin rengiyle eşleşiyor
- Yeni görüntüleme işlemi yöntemleri:
- Geliştirilmiş
scrollTo()
ListView
öğesinin alt öğeleriyle çalışmak için işlemi görüntüle repeatedlyUntil()
– Görünüm, istenenViewMatchers
ile eşleşene kadar bir görünümde belirtilenViewAction
işlemini gerçekleştirir
- Geliştirilmiş
- Yeni Espresso yöntemleri:
pressBackUnconditionally()
–pressBack()
işlevine benzer ancak Espresso gezinirken istisna yapmaznoActivity()
–ViewAction
veyaViewAssertion
gerçekleştirmeden önce bir etkinliği bekleme ihtiyacını ortadan kaldırıronIdle()
– Uygulama boşta kalana kadar ana iş parçacığını döngüye alıronIdle(Callable<T>)
–onIdle()
ile aynıdır ancak parametre olarak ek birCallable
gerekir. Bu parametre, uygulama boşta kaldığında yürütülür
webScrollIntoView()
–WebView
içinde kaydırmanıza olanak tanıyan yeniespresso-web
atomu
- Yeni MultiProcess Espresso
- Koşucu
-
InterceptingActivityFactory
veSingleActivityFactory
:startService()
vesendBroadcast()
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ıkmaxSdkVersion
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 kendiRunnerBuilder
uygulamalarını sunmalarına olanak tanır.
-
- Kurallar
ProviderTestRule
–ContentProvider
nesneyi test etmek için yeni APIgetActivityResult()
veActivityResultMatchers
–setResult()
adlı bir etkinliğin etkinlik sonucunu almak için yeni API
- 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
- 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.
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üzeltinIdlingResource
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 veespresso-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 veParameterized
ileEnclosed
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)
-
- Kurallar
- Normal ve tembel
ActivityTestRule
başlatma sırasında davranışları birleştirmek içinActivityTestRule
yaşam döngüsü düzeltildi - Sorun 37079943: Yeniden bağlamaya izin vermek için
ServiceTestRule
sorununu düzeltin - Sorun 37109342:
getActivityResult()
veActivityResultMatchers
ekleyin
- Normal ve tembel
- UiAutomator
UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES
ile kullanım içinsetUiAutomationFlags()
: Bu, diğer erişilebilirlik hizmetleri çalışırkenUiAutomator
uygulamasının kullanılabilmesine olanak tanır- Sorun 37082813:
API düzeyi 19 veya daha düşükse boş
EditText
nesnelerindesetText()
hata mesajı döndürüyorNullPointerException
Diğer önemli değişiklikler
- İkili programlar artık Google Maven aracılığıyla yayınlanıyor
espresso-core
veespresso-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çinsendTap()
'in yeni bir sürümü var
Harici katkılar
- Espresso
- Koşucu
- Kurallar
Espresso 2.2.2, Runner/Rules 0.5 (22.02.2016, sessiz yayın)
Yeni özellikler
- espresso
- Sorun 194253: Android destek tasarım kitaplığında NavigationView desteği ekleme
- Etkinleştirilen animasyonlar ve geçişler için kontroller eklendi
- Yeni
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
- Sorun 187249:
- 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
- Sorun 196066:
Diğer önemli değişiklikler
ActivityTestRule
,UiThreadTestRule
,IntentsTestRule
veServiceTestRule
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 yeniIntentsTestRule
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
- Belirli bir sınıftakiler hariç tüm testleri çalıştırma:
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ıyorparentListener
- 153303: "Çekmece açık mı kapalı mı" kontrollerinde belirtilen yer çekimi
- 157910:
DrawerLayout
Open and close action fabrikalarını ekleyin
- 157911: Bir
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 birIntent
ile çağrılmalıdır
- API düzeyi 23'teki
- 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
- Bozuk gradle
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
- Yeni
- 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ınParentListener
sızıntısı düzeltildi- Varsayım hatası artık başarısız test yerine yoksayma testi olarak değerlendiriliyor
ExecutorService
üzerindenMonitoringInstrumentation
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
vecom.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ırViewMatchers.withContentDescription()
resId
aşırı yük
- kurallar
ActivityTestRule
: Bu kural, tek bir etkinliğin işlevsel testini sağlarUiThreadRule
veUiThreadTest
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ıkFile
veyaOutputStream
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
ileNullPointerException
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ü
- Sütun bulunamadıysa imleç eşleştirici artık
- koşucu
AndroidJUnit4
artık başarısız varsayımlarla testleri atlıyor
- UIAutomator
- İzlemecileri çalıştırarak
StaleObjectException
olmasını engelleyin
- İzlemecileri çalıştırarak
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
konumundanandroid.support.test.espresso
konumuna taşındı. - Espresso eserleri yeniden adlandırıldı
espresso-1.1.jar
artıkespresso-core-release-2.0.jar
IdlingResource
arayüzü ayrı bir kitaplığa taşındı:espresso-idling-resource-release-2.0.jar
CountingIdlingResource
artıkespresso-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önetirPickerActions
:Date
veTime
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şleyicilerCursorMatchers
:Cursor
nesne için eşleştirici koleksiyonu
- Onaylar
isLeftOf()
veisAbove()
dahilPositionAssertions
: Ekrandaki öğelerin göreli konumunu kontrol etmek içinViewAssertions
koleksiyonuLayoutAssertions
: i18n ile ilgili düzen testi için onaylar
- Test uygulaması: Birçok yeni örnek etkinlik/test
- Diğer
Espresso.unregisterIdlingResources()
veEspresso.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çinonData()
desteğiCursorAdapters
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şirDrawerActions.openDrawer()
için kaydırma işlemi çağrısı yapıldığında artıkIdlingResourceTimeoutException
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
veswipeRight
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 yeniDrawerActions
: 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