Saya mengembangkan tes otomatis untuk aplikasi android (menggunakan Robotium). Untuk memastikan konsistensi dan keandalan tes, saya ingin memulai setiap tes dengan kondisi bersih (dari aplikasi yang diuji). Untuk melakukannya, saya perlu menghapus data aplikasi. Ini dapat dilakukan secara manual di Pengaturan / Aplikasi / Kelola Aplikasi / [Aplikasi Saya] / Hapus data
Apa cara yang disarankan untuk menyelesaikan ini secara terprogram?
Jawaban:
Anda dapat menggunakan alat manajer paket untuk menghapus data untuk aplikasi yang diinstal (mirip dengan menekan tombol 'hapus data' dalam pengaturan aplikasi pada perangkat Anda). Jadi menggunakan adb yang bisa Anda lakukan:
sumber
Error: unknown command 'clear'
.Menindaklanjuti jawaban @ edovino, cara menghapus semua preferensi aplikasi secara terprogram adalah
Peringatan : aplikasi akan ditutup paksa.
sumber
Anda dapat menghapus data-aplikasi SharedPreferences dengan ini
dan untuk menghapus aplikasi db, jawaban ini benar -> Menghapus basis data Aplikasi
sumber
Dari API versi 19, dimungkinkan untuk memanggil ActivityManager.clearApplicationUserData ().
sumber
Periksa kode ini untuk:
sumber
Jika Anda hanya memiliki beberapa preferensi bersama untuk dihapus, maka solusi ini jauh lebih baik .
sumber
Menggunakan Konteks , Kami dapat menghapus file khusus aplikasi seperti preferensi, file database. Saya telah menggunakan kode di bawah ini untuk pengujian UI menggunakan Espresso.
sumber
Cara paling sederhana untuk melakukan ini adalah
Ini akan menghapus data dan menghapus aplikasi Anda dari memori. Ini sama dengan menghapus opsi data di bawah Pengaturan -> Manajer Aplikasi -> Aplikasi Anda -> Hapus data.
Ini akan menghapus data sepenuhnya serta menutup paksa aplikasi
sumber
Solusi ini sangat membantu saya:
Dengan menggunakan dua metode di bawah ini kita dapat menghapus data secara programatik
sumber
jika versi android di atas kitkat Anda dapat menggunakan ini juga
public void onClick (Tampilan tampilan) {
sumber
Satu-satunya pilihan yang mungkin adalah menjalankan perintah ADB
adb shell pm clear package
sebelum pengujian. Masalah terbesar adalah jenis sakit kepala yang menggabungkan tes eksekusi dan perintah shell.Namun, kami (di Mediafe) datang dengan beberapa solusi yang dapat bekerja untuk Anda pada perangkat yang tidak di-root. Yang perlu Anda lakukan adalah menambahkan anotasi. Semua sisanya dilakukan dengan menjalankan skrip bash sederhana .
Cukup tambahkan
@ClearData
anotasi sebelum SETIAP tes dan tada 🎉 Anda, perintah yang jelas ADB akan dijalankan sebelum pelaksanaan tes.Ini adalah contoh dari tes tersebut:
Idenya adalah sebagai berikut
adb shell am instrument -e log true
Menggunakan ide yang sama ini adalah semua opsi yang dapat Anda dukung dengan mudah:
Gunakan hanya anotasi. Seperti ini:
Bonus! 🎁 Untuk setiap tes yang gagal:
Secara umum, mudah untuk menambahkan lebih banyak opsi, karena tes dijalankan satu per satu dari skrip bash daripada dari tugas gradle.
📗 Posting blog lengkap : https://medium.com/medisafe-tech-blog/running-android-ui-tests-53e85e5c8da8
📘 Kode sumber dengan contoh : https://github.com/medisafe/run-android-tests
Semoga ini menjawab 6 tahun pertanyaan;)
sumber