Menambahkan resource tata letak ke androidTest

Saya ingin menambahkan file layout xml ke dalam folder androidTest saya untuk digunakan hanya untuk pengujian.

Saya menambahkan folder res/layout ke androidTest dan mencoba menambahkan file tata letak ke dalamnya. Tapi itu memberikan kesalahan URI is not registered untuk xmlns:android="http://schemas.android.com/apk/res/android"

Entah bagaimana proyek tidak mengenalinya sebagai file tata letak yang valid.


person Abdullah    schedule 21.11.2016    source sumber
comment
Periksa jawaban ini juga, Anda telah membuat import <yourDefaultPackage>.test.R: stackoverflow.com/a/31492816/1797950   -  person crgarridos    schedule 11.02.2019


Jawaban (3)


Sulit untuk menambahkan sumber daya XML ke androidTest.

Pengujian Instrumentasi Android membuat APK lain untuk menjalankan pengujian terhadap aplikasi asli Anda. Meskipun Anda dapat mengakses Context dan objek dari aplikasi utama, Anda tidak dapat mengubah file APK yang dihasilkan aplikasi Anda.

Itu berarti Anda tidak dapat memasukkan layout xml tambahan ke aplikasi asli Anda dari pengujian yang ada di folder androidTest.

Larutan:

Kalau tidak,

  • Anda dapat membuat buildType yang disebut espresso.
  • Then, create an espresso folder where you can put any java or Android resource you want to add.
    • You can even modify your AndroidManifest there.
  • Lalu, gunakan testBuildType 'espresso'

build.gradle Anda akan terlihat seperti ini:

android {
  testBuildType 'espresso'

  buildTypes {
    espresso.initWith(buildTypes.release)
  }
}

dependencies {
  espressoCompile 'somedependency' // you can even have special dependencies
}

Saat Anda menjalankan pengujian espresso berdasarkan rasa tersebut, Anda akan memiliki akses ke file xml tata letak tambahan yang Anda tambahkan.

Seharusnya terlihat seperti ini:

masukkan deskripsi gambar di sini

person tasomaniac    schedule 21.11.2016
comment
jawaban yang bagus @tasomaniac. Akan lebih baik jika menggunakan testBuildType yang bukan debug, sehingga Anda tidak perlu mengembangkan rangkaian rasa Anda. - person a.bertucci; 27.02.2017

Itu mudah! Secara umum, Anda sebaiknya meletakkan sumber daya Anda di bawah folder src/androidTest/res. Dan itu adalah! Kemudian Anda dapat menggunakannya di file src/androidTest/java Anda. Ya, Anda tidak dapat menggunakan tata letak pengujian di APK produksi, namun Anda dapat menggunakan tata letak pengujian di APK pengujian.

Ada beberapa masalah yang mungkin membingungkan Anda. Misalnya, pelengkapan otomatis tidak terlalu sering berfungsi dengan baik, namun tetap saja, pelengkapan otomatis dapat dibuat dan berfungsi.

Baru-baru ini saya menulis kontrol khusus untuk EditText yang disamarkan jadi saya tidak ingin memasukkan aktivitas apa pun ke perpustakaan , tapi saya ingin memiliki aktivitas untuk memeriksa tampilan dan saya ingin mengembangkannya dari XML. Anda dapat melihat seluruh kode di halaman github, berikut beberapa momen penting:

$ tree androidTest/
androidTest/
├── AndroidManifest.xml
├── java
│   └── ru
│       └── egslava
│           └── lib_phone
│               ├── MainActivityTest.java
│               ├── TestActivity.java
│               └── actions
│                   ├── HintViewAction.java
│                   ├── KeepHintViewAction.java
│                   └── SetTextViewAction.java
└── res
    ├── layout
    │   └── activity_main.xml
    └── values
        └── styles.xml

Jadi Anda dapat melihat, bahwa di bawah AndroidTest ada semacam proyek terpisah dengan manifesnya sendiri yang mendaftarkan Aktivitas dan seterusnya :-) Saya akan membagikan lebih banyak file, tetapi ini hanya sebuah proyek, tidak lebih dan Anda selalu dapat mencari tautannya .

Satu-satunya hal yang ingin saya peringatkan kepada Anda, Anda harus siap bahwa Android Studio akan menunjukkan kepada Anda bahwa proyek Anda mengandung kesalahan meskipun itu tidak benar :-) Semoga berhasil!

Bersiaplah bahwa AndroidStudio akan menunjukkan kepada Anda bahwa proyek Anda mengandung kesalahan meskipun itu tidak benar

person Slava    schedule 07.03.2017
comment
Satu catatan: Anda harus menggunakan kelas {module_package}.test.R untuk mengakses sumber daya di folder androidTest/res. - person user2137020; 24.01.2018

Tidak dapat berkomentar, tetapi ingin menambah jawaban @ Slava. Jika seseorang dapat menambahkannya sebagai komentar, tentu saja.

Coba hilangkan kesalahan lint dengan jawaban yang diterima dari pertanyaan ini. Android Studio Menghapus kesalahan lint

person Lennin Marte    schedule 29.11.2019