Bu kılavuzda, Espresso'yu SDK Yöneticisi'ni kullanarak yükleme ve Gradle'i kullanarak derleme işlemleri ele alınmaktadır. Android Studio önerilir.
Test ortamınızı ayarlama
Kararsızlığı önlemek için test için kullanılan sanal veya fiziksel cihazlarda sistem animasyonları kapatmanızı önemle tavsiye ederiz. Cihazınızda Ayarlar > Geliştirici seçenekleri bölümünde aşağıdaki 3 ayarı devre dışı bırakın:
- Pencere animasyonu ölçeği
- Geçiş animasyonu ölçeği
- Animatör süre ölçeği
Espresso bağımlıları ekleme
Projenize Espresso bağımlılıkları eklemek için aşağıdaki adımları tamamlayın:
- Uygulamanızın
build.gradle
dosyasını açın. Bu genellikle en üst düzeybuild.gradle
dosyası değil,app/build.gradle
dosyasıdır. - Bağımlılıklar bölümüne aşağıdaki satırları ekleyin:
Eski
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' androidTestImplementation 'androidx.test:runner:1.6.1' androidTestImplementation 'androidx.test:rules:1.6.1'
Kotlin
androidTestImplementation('androidx.test.espresso:espresso-core:3.6.1') androidTestImplementation('androidx.test:runner:1.6.1') androidTestImplementation('androidx.test:rules:1.6.1')
Gradle bağımlılıklarının tamamını görüntüleyin.
Enstrümantasyon çalıştırıcısını ayarlama
Aynı build.gradle
dosyasına android.defaultConfig
bölümünde aşağıdaki satırı ekleyin:
Groovy
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Kotlin
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
Örnek Gradle derleme dosyası
Groovy
plugins { id 'com.android.application' } android { compileSdkVersion 33 defaultConfig { applicationId "com.my.awesome.app" minSdkVersion 21 targetSdkVersion 33 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } } dependencies { androidTestImplementation 'androidx.test:runner:1.6.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' }
Kotlin
plugins { id("com.android.application") } android { compileSdkVersion(33) defaultConfig { applicationId = "com.my.awesome.app" minSdkVersion(21) targetSdkVersion(33) versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } } dependencies { androidTestImplementation('androidx.test:runner:1.6.1') androidTestImplementation('androidx.test.espresso:espresso-core:3.6.1') }
Analizler
Test çalıştırıcı, her yeni sürümde doğru yolda olduğumuzdan emin olmak için analizler toplar. Daha açık belirtmek gerekirse, her çağrı için test edilen uygulamanın paket adının karmasını yükler. Bu sayede, Espresso'yu kullanarak hem benzersiz paketlerin sayısını hem de kullanım hacmini ölçebiliriz.
Bu verileri yüklemek istemiyorsanız disableAnalytics
bağımsız değişkenini enstrümantasyon komutunuza ekleyerek kapsam dışında kalmayı seçebilirsiniz:
adb shell am instrument -e disableAnalytics true
İlk testi ekleyin
Android Studio, varsayılan olarak src/androidTest/java/com.example.package/
içinde testler oluşturur.
Kuralları kullanan örnek JUnit4 testi:
Kotlin
@RunWith(AndroidJUnit4::class) @LargeTest class HelloWorldEspressoTest { @get:Rule val activityRule = ActivityScenarioRule(MainActivity::class.java) @Test fun listGoesOverTheFold() { onView(withText("Hello world!")).check(matches(isDisplayed())) } }
Java
@RunWith(AndroidJUnit4.class) @LargeTest public class HelloWorldEspressoTest { @Rule public ActivityScenarioRule<MainActivity> activityRule = new ActivityScenarioRule<>(MainActivity.class); @Test public void listGoesOverTheFold() { onView(withText("Hello world!")).check(matches(isDisplayed())); } }
Test çalıştırma
Testlerinizi Android Studio'da veya komut satırından çalıştırabilirsiniz.
Android Studio'da
Android Studio'da bir test yapılandırması oluşturmak için aşağıdaki adımları tamamlayın:
- Çalıştır > Yapılandırmaları Düzenle'yi açın.
- Yeni bir Android Testleri yapılandırması ekleyin.
- Bir modül seçin.
- Belirli bir enstrümantasyon çalıştırıcı ekleyin:
androidx.test.runner.AndroidJUnitRunner
- Yeni oluşturulan yapılandırmayı çalıştırın.
Komut satırından
Aşağıdaki Gradle komutunu çalıştırın:
./gradlew connectedAndroidTest