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)
Ini adalah rilis stabil AndroidX Test 1.1.0
- Inti
- Membuat aktivitas dukungan ActivityScenario yang memulai aktivitas lain
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 (06-12-2018)
- Inti
- Artefak ekstensi core-ktx kotlin baru! Mencakup ActivityScenario.launchActivity API yang cocok untuk kotlin
- ActivityScenario API baru untuk meluncurkan aktivitas dengan intent kustom
- ActivityScenario API baru untuk menerima hasil Activity
- ActivityScenario kini dapat ditutup
- Espresso
- Mengubah withResourceNameMatcher dan HumanReadables agar kompatibel dengan API 28.
- Memperbarui deskripsi ReplaceTextAction untuk menyertakan stringToBeSet
- Mendukung Espresso dalam mode looper Robolectric yang dijeda.
- JUnit
- ActivityScenarioRule API baru, untuk meluncurkan dan menutup Activity secara otomatis saat penyiapan dan penguraian pengujian
- Artefak ekstensi kotlin junit-ktx baru! Mencakup ActivityScenarioRule API yang cocok untuk Kotlin
- Pelari
- Perilaku paket -e dan testFile -e kini konsisten saat menerima paket
- Kebenaran
- Menambahkan bool, parcelable, dan parcelableAsType BundleSubject API
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)
- Semua
- Menetapkan minSdkVersion ke 14 dan targetSdkVersion ke 28
- Espresso
- Memperbaiki withContentDescription agar berfungsi dengan jenis non-string
- Menambahkan dukungan untuk menggunakan Espresso di Robolectric
- Masalah 72798625: Espresso ViewMatchers.withText tidak berfungsi saat textAllCaps diaktifkan
- Menambahkan dukungan untuk memasukkan rangkaian peristiwa gerakan
- Intent
- Menambahkan API beta untuk mengambil daftar intent. Dimaksudkan untuk digunakan dengan pernyataan truth baru
- Pelari
- Menambahkan dukungan untuk aplikasi instan
- Menghentikan androidx.test.runner.AndroidJUnit4 dan menggantinya dengan androidx.test.ext.junit.runners.AndroidJUnit4
- Pantau
- Menghentikan androidx.test.InstrumentationRegistry dan menggantinya dengan androidx.test.platform.app.InstrumentationRegistry dan androidx.test.core.app.ApplicationProvider
- AndroidTestOrchestrator
- Hanya mengaktifkan penanganan cakupan orchestrator jika argumen 'coverage' dan 'coverageFilePath' diteruskan.
- Hanya menunggu debugger jika -debug ditetapkan, tetapi tidak untuk listingan kasus pengujian ATO. Tanda orchestratorDebug baru ditambahkan untuk men-debug orchestrator tersebut sendiri
- Inti
- Artefak baru! Mencakup API baru yang mendukung pengujian lokal dan di perangkat untuk:
- Mengambil konteks: ApplicationProvider
- Mengontrol siklus proses aktivitas: ActivityScenario(beta)
- Builder untuk MotionEvent, PackageInfo
- Class utilitas parceable
- Artefak baru! Mencakup API baru yang mendukung pengujian lokal dan di perangkat untuk:
- Kebenaran
- Artefak baru! Mencakup subjek truth kustom untuk Notification, Intent, Bundle, Parcelable, dan MotionEvent
- JUnit
- Artefak baru! Menyertakan class runner JUnit androidx.test.ext.junit.runners.AndroidJUnit4 yang mendukung pengujian lokal dan di perangkat.
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 (16-04-2018)
- Espresso
- Perubahan API yang Dapat Menyebabkan Gangguan:
- Kami menyadarinya dalam Masalah 64062890 bahwa kami sebelumnya menggunakan Guava Optional dalam API publik kami. Mohon maaf atas kesalahan ini. Oleh karena itu, ada perubahan API publik yang dapat menyebabkan gangguan dalam rilis ini untuk mengatasi masalah ini. Kami memperkenalkan wrapper bermasalah pada class Guava Optional, bernama EspressoOptional, yang terletak pada namespace "android.support.test.espresso.util". Developer yang menggunakan Guava Optional API yang bocor harus mengubah impor dan referensi mereka untuk menggunakan EspressoOptional selama proses update ke versi baru ini. Kami mohon maaf atas ketidaknyamanan ini.
- API onView() dan onData() sekarang ditandai @CheckReturnValue untuk mencegah terjadinya error
- Memperbaiki file POM espresso-core agar tidak mengambil dependensi "rules", sebagai gantinya membuat POM espresso-intent mengambilnya. Seharusnya ini menjadi perubahan NoOp bagi developer karena espresso-intent tidak dapat digunakan tanpa espresso-core.
- Masalah 65486414: Espresso tidak memiliki dependensi guava
- Masalah 65576174: IdlingResourceRegistry.sync Espresso menyebabkan pengujian kedua gagal
- Masalah 65568629: Espresso.onIdle tidak menggunakan IdlingRegistry
- Masalah 69333598: espresso 3.0.1 tidak kompatibel dengan play-services-auth:11.6.0 dalam modul library android.
- Masalah 64062890: Jenis Internal Optional yang diekspos oleh antarmuka AdapterViewProtocol
- masalah 64091847: Espresso 3.0.0 TIDAK boleh bergantung pada runner pengujian
- Masalah 73722050: espresso-contrib 3.0.2-alpha1 mengemas class android.arch.{lifecycle/core}
- Perubahan API yang Dapat Menyebabkan Gangguan:
- Remote Espresso
- Ini adalah artefak baru. Kami memisahkan semua fungsi multi-proses Espresso di luar artefak espresso-core. Artefak ini lebih rapi dan mengurangi ukuran keseluruhan dan jumlah metode espresso-core secara signifikan.
- Pelari
- Memotong pelacakan tumpukan jika terlalu besar untuk transaksi binder. Karena AJUR perlu melaporkan kegagalan kembali ke AM melalui binder IPC, batas transaksi Binder tidak boleh terlampaui - yaitu 1 MB per proses.
- Masalah 65828576: TestRequestBuilder mengalami error saat menjalankan pengujian dalam class dengan @Ignore
- Masalah 37057596: Kami tidak menangani kegagalan dalam @BeforeClass
- Aturan
- Memastikan untuk merilis referensi tentang aktivitas yang sedang diuji setelah siklus proses diubah. Selama durasi pengujian, pengguna sekarang bisa memanipulasi Activity secara langsung menggunakan referensi yang diperoleh dari #getActivity(). Jika Activity selesai dan diluncurkan kembali, referensi yang ditampilkan oleh #getActivity() sekarang selalu mengarah ke instance terbaru Activity tersebut.
- Masalah 64389280: GrantPermissionRule tidak menyediakan WRITE_EXTERNAL_STORAGE
- Masalah 37065965: ActivityTestRule membocorkan aktivitas setelah orientasi diubah
- Masalah 75254050: ActivityTestRule tidak mengupdate instance Activity selama perubahan konfigurasi
- Masalah 64464625: Tidak dapat melakukan pekerjaan UI pada metode finish() Activity
- AndroidTestOrchestrator
- Memberikan tanda
-e coverage true -e coverageFilePath /sdcard/foo/
untuk membuat file cakupan di lokasi yang ditentukan (Aplikasi harus memiliki izin untuk menulis ke lokasi yang ditentukan). Konvensi penamaan file cakupan sekarang terlihat seperti ini:com.foo.Class#method1.ec
. Perlu diketahui bahwa tanda ini hanya didukung saat eksekusi dilakukan dalam mode terisolasi. Selain itu, tanda ini tidak dapat digunakan bersama tandacoverageFile
AndroidJUnitRunner. Hal ini terjadi karena file cakupan yang dihasilkan akan saling menimpa. - Meneruskan tanda
-e clearPackageData
jika Anda ingin orchestrator menjalankan perintahpm clear context.getPackageName()
danpm clear targetContext.getPackageName()
di antara pemanggilan pengujian. Perhatikan, konteks dalam perintah yang jelas adalah Aplikasi dalam konteks pengujian. - Memperbaiki - Saat menjalankan pengujian kosong, alias tidak ada @Test di dalam target, hasil pengujian berbeda dengan mode lama.
- Masalah 72758547: Test Orchestrator menyebabkan Data Cakupan Jacoco tidak lengkap, hanya memiliki data eksekusi pengujian terakhir
- Masalah 67916042: Android Test Orchestrator: Eksekusi dihentikan saat terjadi error Proses akibat OutOfMemory
- Masalah 77752735: Orchestrator mengalami error untuk TransactionTooLargeException
- Masalah 77549481: Test Orchestrator harus menjalankan "pm clear" Setelah Setiap Test
- Memberikan tanda
Espresso 3.0.2-alpha1, Runner 1.0.2-alpha1, Rules 1.0.2-alpha1, AndroidTestOrchestrator 1.0.2-alpha1 (05-12-2017)
Espresso
Intents
sekarang memiliki respons yang dapat dipanggil, yang memungkinkan pengujian dijalankan setelah menangkap intent yang dipicu, tetapi sebelum menampilkan objekInstrumentation.ActivityResult
.
Runner
Membagi artefak maven monitor
com.android.support.test:monitor:<version>
, untuk pengguna yang membutuhkanMonitoringInstrumentation
tanpa fitur JUnit dan eksekusi pengujian.Jika Anda menggunakan
com.android.support.test:runner:<version>
, semuanya akan bekerja seperti yang diharapkan, karena Gradle otomatis menarik modulmonitor
sebagai dependensi modulrunner
.Menambahkan flag
newRunListenerOrderMode
. Saattrue
, pemroses yang ditetapkan pengguna berjalan sebelum pemroses default. (Kami memperkirakan perilaku ini pada akhirnya akan menjadi default).Masalah 65828576:
TestRequestBuilder
mengalami error saat menjalankan pengujian dalam class yang dianotasi dengan@Ignore
(mandiri tanpa fitur JUnit atau eksekusi pengujian).
AndroidTestOrchestrator
- Sekarang menangani pengujian kosong dengan cara yang sama seperti
AndroidJUnitRunner
yang tidak diorkestrasi. - Orchestrator sekarang dapat menangani output standar yang sangat besar dari
AndroidJUnitRunner
.
- Sekarang menangani pengujian kosong dengan cara yang sama seperti
Espresso 3.0.1, Runner 1.0.1, Rules 1.0.1, AndroidTestOrchestrator 1.0.1 (28-08-2017)
Espresso
- Menambahkan opsi
IdlingPolicy
untuk menekanonTimeout()
saat debugger langkah disematkan ke VM. - Masalah 64024656, 64247586,
dan 64525881: Jangan laporkan kegagalan untuk
pemuatan class yang tidak berhasil, kecuali jika pengguna memuat class tertentu dengan
menyertakan argumen runner class
-e
. - Masalah 64877246: Menambahkan class yang hilang ke file JAR sumber.
- Menambahkan opsi
Runner
- Menyederhanakan logika
ShardingFilter
. - Masalah 65025743: Filter
@RequiresDevice
sekarang mendukung emulator FTL.
- Menyederhanakan logika
AndroidTestOrchestrator
- Tidak menduplikasi kegagalan laporan. Jika proses pengujian mengalami error setelah terjadi kegagalan, sekarang hanya satu kegagalan yang dilaporkan untuk pengujian itu.
- Memperbaiki Javadoc untuk Orchestrator.
- Sekarang pengujian ditunjukkan sebagai terlewat jika proses jarak jauh error.
- Sekarang menangani kasus pengujian yang diabaikan.
- Sekarang mengecualikan kasus pengujian yang diabaikan dari footer agar cocok dengan hasil lama.
- Memperbaiki masalah izin runtime. Laporan pengujian sekarang ditulis ke kartu SD pada Android 7.0 (API level 24) dan yang lebih baru.
Espresso 3.0.0, Runner 1.0.0, Rules 1.0.0, AndroidTestOrchestrator 1.0.0 (25-07-2017, Pengumuman)
Perubahan yang dapat menyebabkan gangguan
- Semua artefak
- Menghapus dukungan untuk API level lebih lama dari 15, tetapi SDK minimalnya tetap menargetkan API level 9 agar pengguna memiliki waktu untuk mengupgrade
- Espresso
- Class
android.support.test.espresso.contrib.CountingIdlingResource
yang tidak digunakan lagi telah dihapus dan dipindahkan keandroid.support.test.espresso.idling.CountingIdlingResource
- Gunakan
getInstance().register()
, bukanregisterIdlingResources()
- Gunakan
- Guava sekarang dipindahkan ke
namespace "internal" lain – jika Anda tidak sengaja menggunakan Guava API
melalui namespace Espresso, Anda mungkin akan mengalami kerusakan
- Menghapus semua referensi ke Guava yang dilindungi (
.core.deps.guava.
) - Upgrade Support Library Anda ke versi 25.4.0 atau lebih tinggi
- Menghapus semua referensi ke Guava yang dilindungi (
- Class
Masalah umum
- AndroidTestOrchestrator
- Argumen runner
-e numShards
dan-e shardIndex
saat ini tidak didukung - Pengujian yang diparameterisasi saat ini tidak didukung
- Argumen runner
Fitur baru
- Espresso
- Dukungan Multiprocess Espresso
baru pada API 26 untuk
espresso-core
danespresso-web
, tetapi tidak untukespresso-contrib
IdlingRegistry
API baru yang ringan- Dipublikasikan sebagai bagian dari
com.android.support.test.espresso:espresso-idling-resource:3.0.0
- Metode yang tidak digunakan lagi:
- Dipublikasikan sebagai bagian dari
- API baru untuk membantu sinkronisasi dengan
Executors
- Artefak maven baru:
com.android.support.test.espresso.idling:idling-concurrent:3.0.0
- Berisi
class
IdlingScheduledThreadPoolExecutor
danIdlingThreadPoolExecutor
- Artefak maven baru:
- API baru untuk membantu sinkronisasi dengan permintaan dan respons jaringan.
- Artefak maven baru:
com.android.support.test.espresso.idling:idling-net:3.0.0
- Berisi class
UriIdlingResource
- Artefak maven baru:
- Pencocok tampilan
espresso-core
baru:hasBackground()
melakukan pencocokan dengan resource drawable latar belakang objekView
hasTextColor()
melakukan pencocokan dengan warna objekTextView
- Metode tindakan tampilan baru:
- Menyempurnakan tindakan tampilan
scrollTo()
agar dapat digunakan dengan turunanListView
repeatedlyUntil()
– MenjalankanViewAction
yang ditentukan pada tampilan hingga tampilan cocok denganViewMatchers
yang diinginkan
- Menyempurnakan tindakan tampilan
- Metode Espresso baru:
pressBackUnconditionally()
– Serupa denganpressBack()
, tetapi tidak melempar pengecualian saat Espresso melakukan navigasinoActivity()
– Meniadakan perlunya menunggu aktivitas sebelum menjalankanViewAction
atauViewAssertion
onIdle()
– Mengulang thread utama hingga aplikasi tidak ada aktivitasonIdle(Callable<T>)
– Sama sepertionIdle()
, tetapi menggunakanCallable
tambahan sebagai parameter, yang dijalankan setelah aplikasi tidak ada aktivitas
webScrollIntoView()
– Atomespresso-web
baru yang memungkinkan Anda men-scroll di dalamWebView
- Dukungan Multiprocess Espresso
baru pada API 26 untuk
- Berlari
-
InterceptingActivityFactory
danSingleActivityFactory
– Menyediakan fasilitas pengujian aktivitas secara terpisah dari dunia luar dengan mengganti metode sepertistartService()
dansendBroadcast()
-
Menambahkan dukungan untuk penggunaan JUnitParams dengan
AndroidJUnitRunner
-
Mulai tangani
@UiThreadTest
pada level runner pengujian inti dan hentikan@UiThreadTestRule
– Ini memungkinkan penggunaan anotasi@UiThreadTest
secara langsung pada metode yang dianotasi dengan@Before
dan@After
-
Anotasi
@SdkSupress
sekarang mendukung nilaimaxSdkVersion
(Masalah 37067792) -
-e classLoader
– Memberikan kemampuan untuk meneruskan loader class menggunakan argumen runner -
-e filter
– Menambahkan dukungan untuk filter JUnit kustom yang akan ditentukan menggunakan argumen runner -
-e runnerBuilder
– Memungkinkan developer memberikan implementasinya sendiri atasRunnerBuilder
yang dapat menentukan apakah mereka dapat menjalankan class tertentu, serta bagaimana caranya
-
- Aturan
ProviderTestRule
– API baru untuk menguji objekContentProvider
getActivityResult()
danActivityResultMatchers
– API baru untuk mengambil hasil aktivitas dari aktivitas yang telah memanggilsetResult()
- AndroidTestOrchestrator
- Android Test Orchestrator
memberikan cara baru untuk mengumpulkan dan menjalankan pengujian, dengan penekanan pada
ketepatan dan isolasi. Orchestrator adalah proses instrumentasi
independen, yang menghasilkan satu proses runner instrumentasi untuk setiap pengujian
dan mengumpulkan hasilnya.
- Error aplikasi menghentikan instrumentasi runner, tetapi tidak menghentikan orchestrator sehingga paket pengujian Anda dapat dilanjutkan
- Mewajibkan penginstalan APK orchestrator –
'com.android.support.test:orchestrator:1.0.0'
- Versi 1.0 hanya memiliki antarmuka command line; integrasi dengan Android Studio dan Firebase Test Lab sedang direncanakan
- Android Test Orchestrator
memberikan cara baru untuk mengumpulkan dan menjalankan pengujian, dengan penekanan pada
ketepatan dan isolasi. Orchestrator adalah proses instrumentasi
independen, yang menghasilkan satu proses runner instrumentasi untuk setiap pengujian
dan mengumpulkan hasilnya.
Perbaikan bug
- Espresso
- Meningkatkan sinkronisasi tampilan root untuk mengurangi kegagalan secara signifikan
- Memperbaiki kerusakan
IdlingResourceRegistry
- Sinkronisasi yang lebih baik terhadap objek
IdlingResource
- Masalah 37132680: Espresso tidak menunggu hingga pembuatan dialog selesai sebelum menjalankan tindakan berikutnya
- Masalah 37103280: Espresso harus menyertakan aturan konsumen ProGuard agar konsumen tidak perlu menambahkannya
- Masalah 37094726: Intent Espresso berisi label aplikasi yang tidak diperlukan
- Masalah 37093953: Espresso: Pemeriksaan tidak tersedia untuk teks error null/kosong
- Masalah 37071776:
espresso-core
menyematkan file.pom
Guava - Masalah 37062612: NPE dalam
release()
- Masalah 37063389: Tidak dapat mengompilasi jika menetapkan
Guava dan
espresso-web
sebagai dependensiandroidTest
- Masalah 37070533: Menambahkan dukungan untuk
NavigationView
di Support Library Desain Android
- Berlari
-
Memperbaiki kemampuan untuk menggunakan
@UiThreadTest
yang dikombinasikan dengan@Test(timeout = 123)
- Memperbaiki argumen runner
-e notClass
- Memperbaiki
-e log
agar mendukung rangkaian pengujian JUnit3 dan JUnit4, serta runnerParameterized
danEnclosed
- Masalah 37663530: Menunggu semua aktivitas selesai sebelum dan sesudah setiap metode pengujian
- Masalah 37132680: Espresso tidak menunggu hingga pembuatan dialog selesai sebelum menjalankan tindakan berikutnya
-
Masalah 37123213:
@RequiresDevice
diabaikan pada ABI x86_64 -
Masalah 37101485: Beberapa argumen yang disediakan manifes untuk
AndroidJUnitRunner
—seperti ukuran pengujian, anotasi, dan debug—diabaikan - Masalah 37082857: Eksekusi pengujian semi-paralel Espresso gagal pada objek statis
-
Masalah 37063396: Konteks tidak diinisialisasi dengan
ProviderTestCase2
(menyebabkanNullPointerException
)
-
Memperbaiki kemampuan untuk menggunakan
- Aturan
- Memperbaiki siklus proses
ActivityTestRule
untuk menyatukan perilaku di seluruh inisialisasiActivityTestRule
reguler dan lambat - Masalah 37079943: Memperbaiki
ServiceTestRule
untuk memungkinkan binding ulang - Masalah 37109342: Menambahkan
getActivityResult()
danActivityResultMatchers
- Memperbaiki siklus proses
- UiAutomator
setUiAutomationFlags()
untuk digunakan denganUiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES
. Hal ini memungkinkanUiAutomator
digunakan saat layanan aksesibilitas lainnya sedang berjalan- Masalah 37082813:
setText()
pada objekEditText
kosong menampilkanNullPointerException
jika API level adalah 19 atau lebih lama
Perubahan penting lainnya
- Biner sekarang dipublikasikan melalui Maven Google
- Mengurangi ukuran file JAR
espresso-core
danespresso-web
. Dependensi tersemat sekarang memiliki ProGuard yang diterapkan - Semua file
.aar
sekarang menyertakan aturan ProGuard - Menambahkan file
proguard_library.cfg
ke artefak yang dirilis - Antarmuka
Tapper
memiliki versi barusendTap()
yang akan diimplementasikan
Kontribusi eksternal
- Espresso
- Pelari
- Aturan
Espresso 2.2.2, Runner/Rules 0.5 (22-02-2016, rilis tersembunyi)
Fitur baru
- espresso
- Masalah 194253: Menambahkan dukungan untuk NavigationView di library desain dukungan android
- Menambahkan pemeriksaan untuk animasi dan transisi yang diaktifkan
ViewMatcher
API baru:withResourceName()
Perbaikan bug
- espresso
- Masalah 195331: espresso-core menyematkan file pom guava
- Memindahkan resource tanpa aktivitas penghitungan dari espresso-contrib
- aturan
- Masalah 187249: NPE di
Intents.release()
- Masalah 187249: NPE di
- pelari
- Masalah 196066: Argumen
-e log true
diAndroidJUnitRunner
tidak melewati pengujian yang sebenarnya - Menunggu debugger di
onCreate()
runner - Memindahkan semua anotasi pengujian yang didukung dari platform ke ATSL
- Menghapus dump pelacakan tumpukan tentang tidak adanya JSBridge
- Memperbaiki
AndroidAnnotatedBuilder
- Masalah 196066: Argumen
Perubahan penting lainnya
ActivityTestRule
,UiThreadTestRule
,IntentsTestRule
danServiceTestRule
tidak lagi dalam versi beta- Menambahkan file setelan gaya kode untuk pemformatan kode yang seragam
Espresso 2.2.1, Runner/Rules 0.4 (15-09-2015)
Fitur baru
- aturan
- Menambahkan konstruktor
IntentsTestRule
baru agar kompatibel sepenuhnya denganActivityTestRule
- Menambahkan konstruktor
- pelari
- Menambahkan penginstalan multidex kasus khusus untuk API level 15 dan yang lebih lama
- Menambahkan filter pengecualian ke class dan paket:
- Menjalankan semua pengujian kecuali yang ada dalam class tertentu:
adb shell am instrument -w -e notClass com.android.foo.FooTest
- Menjalankan semua pengujian kecuali pengujian tunggal:
adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo
- Menjalankan semua pengujian kecuali paket tertentu:
adb shell am instrument -w -e notPackage com.android.foo.bar
- Menjalankan semua pengujian kecuali yang ada dalam class tertentu:
Kontribusi eksternal
- espresso
- 157911: Menambahkan matcher tampilan untuk jenis input pada
objek
EditText
- 157912: Menambahkan matcher tampilan untuk pencocokan teks error pada
objek
EditText
- 150674: Menambahkan dukungan
DrawerActions
untuk panel samping dengan gravitasi arbitrer - 150744:
DrawerActions
tidak lagi membocorkanparentListener
- 153303: Gravitasi yang ditentukan pada pemeriksaan "apakah panel samping terbuka atau tertutup"
- 157910: Menambahkan factory tindakan buka dan
tutup
DrawerLayout
- 157911: Menambahkan matcher tampilan untuk jenis input pada
objek
Perbaikan bug
- espresso
ViewActions.closeSoftKeyboard()
sekarang memastikan bahwa keyboard virtual benar-benar tidak ada lagi- Memperbaiki masalah sinkronisasi dengan metode
Espresso.pressBack()
Espresso pada API level 21 dan yang lebih baru - Memperbaiki sinkronisasi animasi penutupan keyboard pada API level 23
- aturan
- Memperbaiki
ServiceTestRule
pada API level 23,startService()
harus selalu dipanggil denganIntent
eksplisit
- Memperbaiki
- pelari
- Memperbaiki dukungan
JaCoCo
gradle yang rusak - Memperbaiki dukungan sharding pengujian yang rusak
- Memperbaiki keadaan yang tidak konsisten pada runner pengujian setelah waktu pengujian gaya
JUnit3
habis
- Memperbaiki dukungan
Perubahan penting lainnya
- Memperbaiki Javadoc dan menyempurnakan pesan error
- Mengabaikan metode
suite()
dan tidak mengabaikan error init saat menggunakan filter metode
Espresso 2.2 / ATSL 0.3 (09-06-2015)
Fitur baru
- espresso-web 2.2
- Dukungan
WebView
baru
- Dukungan
- espresso-core 2.2
- Bermigrasi untuk menggunakan dagger v2
- Bermigrasi untuk menggunakan hamcrest v1.3
- espresso-contrib 2.2
- Pemeriksaan aksesibilitas
- Dukungan gravitasi
DrawerActions
- aturan 0.3
- Aturan
DisableOnAndroidDebug
- Aturan
- runner 0,3
- Upgrade dari JUnit v4.10 ke JUnit v4.12
- Bermigrasi untuk menggunakan Hamcrest v1.3
Perbaikan bug
- Memperbaiki
DrawerActions
yang membocorkanParentListener
- Kegagalan asumsi sekarang diperlakukan sebagai pengujian yang diabaikan, bukan pengujian yang gagal
- Memperbaiki
MonitoringInstrumentation
yang membocorkan instance aktivitas melaluiExecutorService
- Memperbaiki aktivitas tanpa induk yang terjebak dalam tahap berhenti
- Mengupdate
Until.scrollFinished()
agar menampilkan true jika tidak ada peristiwa scroll yang dihasilkan. Memberikan perlindungan dari potensi NPE diUiObject2#setText()
.
Espresso 2.1, Test Runner/Rules 0.2, dan UIAutomator 2.1.0 (21-04-2015)
Perubahan yang dapat menyebabkan gangguan
- Artefak runner pengujian dibagi menjadi dua dan namanya diubah dari
com.android.support.test:testing-support-lib:0.1
menjadicom.android.support.test:runner:0.2
dancom.android.support.test:rules:0.2
.
Fitur baru
- espresso-intents: API mirip Mockito yang memungkinkan pengujian antar-aktivitas
hermetic dengan memungkinkan penulis pengujian memverifikasi dan menghentikan intent yang sedang berjalan
IntentsTestRule
: memperluasActivityTestRule
, diinisialisasi, dan merilis Espresso-Intents dalam pengujian UI fungsional
- espresso-core
ViewActions
: Menambahkan kemampuan untuk menjalankan pernyataan global sebelum menjalankan tindakan. Hal ini berguna untuk framework lain yang dibuat menggunakan Espresso untuk memvalidasi status hierarki tampilan saat paket pengujian Espresso yang ada dijalankan- Overload
ViewMatchers.withContentDescription()
resId
- aturan
ActivityTestRule
: Aturan ini menyediakan pengujian fungsional satu aktivitas.- Anotasi
UiThreadRule
danUiThreadTest
: Aturan ini memungkinkan metode pengujian yang dianotasi denganUiThreadTest
untuk dijalankan pada thread utama aplikasi (atau UI thread) ServiceTestRule
: Aturan ini menyediakan pengujian fungsional suatu layanan
- pelari
ApplicationLifecycleCallback
: Callback untuk memantau peristiwa siklus proses aplikasi- Semua argumen runner sekarang juga dapat ditentukan dalam file manifes
Android menggunakan tag
<meta-data>
- UIAutomator
UiDevice.dumpWindowHierarchy()
sekarang dapat menerimaFile
atauOutputStream
Perbaikan bug
- espresso
- Matcher kursor sekarang menampilkan
false
jika kolom tidak ditemukan sehingga Hamcrest dapat melanjutkan ke kursor berikutnya NullPointerException
denganPreferenceMatchers
withTitle
tidak lagi terjadi- Membatalkan pendaftaran resource tanpa aktivitas tidak lagi membuat Espresso menganggap kita memiliki resource tanpa aktivitas yang sibuk
- Mengupdate versi anotasi dukungan yang digunakan oleh Espresso Contrib
- Matcher kursor sekarang menampilkan
- pelari
AndroidJUnit4
sekarang melewati pengujian dengan asumsi yang gagal
- UIAutomator
- Menjalankan watcher untuk mencegah
StaleObjectException
- Menjalankan watcher untuk mencegah
Perubahan penting lainnya
- Menambahkan pesan error yang lebih baik jika tidak dapat melakukan typeText dengan string non-Latin
UIAutomator 2.0 (12-03-2015)
UI Automator sekarang didasarkan pada Instrumentasi Android, dan Anda dapat membuat serta menjalankanwatcherpengujian menggunakan perintah ./gradlew connectedCheck
.
Espresso Versi 2.0, Test Runner 0.1 (Dirilis 19-12-2014)
Perubahan yang dapat menyebabkan gangguan
- Espresso telah dipindahkan ke namespace baru, dari
android.support.test.espresso
menjadiandroid.support.test.espresso
- Artefak Espresso diganti namanya
espresso-1.1.jar
sekarang menjadiespresso-core-release-2.0.jar
- Antarmuka
IdlingResource
telah dipindahkan ke library terpisah:espresso-idling-resource-release-2.0.jar
CountingIdlingResource
sekarang berada diespresso-contrib-release-2.0.jar
(sebagaimana seharusnya)
- Optional (dependensi guava) telah dihapus dari API publik untuk mendukung
pengemasan ulang dependensi guava dan menghindari konflik DEX (sumber
utama kesulitan pengembangan). Metode yang terpengaruh meliputi:
ViewAssertion.check()
HumanReadables.getViewHierarchyErrorMessage()
Fitur baru
- Tindakan
ViewActions
replaceText()
openLink()
- Geser ke atas dan ke bawah
- espresso-contrib
RecyclerViewActions
: Menangani interaksi denganRecyclerViews
PickerActions
: Menangani interaksi dengan pemilihDate
danTime
- Matchers
RootMatchers
isPlatformPopup()
ViewMatchers
isJavascriptEnabled()
withSpinnerText()
withHint()
isSelected()
hasLinks()
LayoutMatchers
: Matcher untuk pengujian tata letak terkait i18nCursorMatchers
: Sekumpulan matcher untuk objekCursor
- Assertions
PositionAssertions
, termasukisLeftOf()
danisAbove()
: KumpulanViewAssertions
untuk memeriksa posisi relatif elemen di layarLayoutAssertions
: Pernyataan untuk pengujian tata letak terkait i18n
- Aplikasi pengujian: Banyak aktivitas/pengujian sampel baru
- Lainnya
Espresso.unregisterIdlingResources()
danEspresso.getIdlingResources()
: Meningkatkan fleksibilitas tambahan untuk bekerja denganIdlingResources
ViewInteraction.withFailureHandler()
: Memungkinkan penggantian pengendali kegagalan darionView()
- Dukungan
onData()
untukAdapterViews
yang didukung olehCursorAdapters
Perbaikan bug
ViewMatchers.isDisplayed()
mencocokkan tampilan yang memenuhi seluruh layar, tetapi tidak lagi ditampilkan kurang dari 90%- Melakukan panggilan tindakan geser ke
DrawerActions.openDrawer()
tidak lagi memberikan hasilIdlingResourceTimeoutException
Perubahan penting lainnya
- Beralih dari membuat project dengan Maven ke Gradle
- Memindahkan dependensi Espresso (Guava, Dagger, Hamcrest) untuk menghindari konflik DEX
- Perubahan untuk menampilkan keberhasilan atau kegagalan pendaftaran dan pembatalan pendaftaran resource tanpa aktivitas
- Dukungan Lollipop: Meletakkan
message.recycle()
di belakang antarmuka untuk memperhitungkan perubahan terkait versi - Mengalihkan level SDK target ke 21, yang sebagian besar memengaruhi aplikasi pengujian
Versi 1.1 (Dirilis 08-01-2014)
Espresso
swipeLeft
danswipeRight
ViewActions
baru- Dukungan multi-aplikasi: Fitur canggih yang memungkinkan pemilihan jendela target tempat Espresso harus menjalankan operasi
- Peningkatan
TypeTextAction
: Memungkinkan pengetikan teks ke dalam tampilan yang telah difokuskan sebelumnya, yang mempermudah penambahan teks - Berbagai perbaikan bug
Library Espresso Contrib
- Library baru ini berisi fitur yang melengkapi Espresso, tetapi bukan merupakan bagian dari library inti
DrawerActions
baru untuk operasi diDrawerLayout
: Memiliki dependensi pada Android Support Library, karena itu, kami membiarkannya tetap di luar library Espresso inti
Pengujian Contoh
- Pengujian ini dipindahkan agar berada dalam paket yang sama dengan aplikasi pengujian
- POM Maven telah diperbaiki untuk menghapus dependensi guava duplikat, jadi
mvn install
sekarang akan berfungsi