Bu dokümanda, testlerin doğrudan komut satırından nasıl çalıştırılacağı açıklanmaktadır. Bu dokümanında Android uygulaması oluşturmayı bildiğiniz ve uygulamanız için testler yazın. Hedeflerinize yönelik testler oluşturma hakkında daha fazla Android'de uygulamaları test etme bölümüne bakın.
Uygulamanızı Gradle derleme sistemini kullanarak oluşturduğunuzda Android Gradle eklentisi, Gradle'ınızdan test çalıştırmanızı sağlar komut satırını kullanarak oluşturabilirsiniz. Daha hassas bir denetim için testlerinizi bir Android Debug Bridge üzerinden çalıştırmayı seçin (adb) kabuğuyla ilgilidir. Bu işlem, sürekli entegrasyon ortamı oluşturmalısınız.
Araç Çubuğu'nu kullanarak otomatik testlerin nasıl çalıştırılacağını komut satırından hakkında daha fazla bilgi edinmek için Gradle ile testlerinizi ölçeklendirme Yönetilen Cihazlar.
Gradle ile testler yapın
Android Gradle eklentisi, şunu kullanarak Gradle projenizden test çalıştırmanızı sağlar: komut satırından erişebilirsiniz.
Aşağıdaki tabloda Gradle ile testlerinizi nasıl çalıştıracağınız özetlenmiştir:
Tablo 1. ile testlerinizi yürütmenin farklı yolları Gradle
| Birim testi türü | Çalıştırılacak komut | Test sonucunun konumu |
|---|---|---|
| Yerel birim testi |
test görevini çalıştırın:
|
HTML testi sonuç dosyaları:path_to_your_project/module_name/build/reports/tests/
dizin.
XML testi sonucu dosyaları: |
| Araçlı birim testi |
connectedAndroidTest görevini çalıştırın:
|
HTML testi sonuç dosyaları:path_to_your_project/module_name/build/reports/androidTests/connected/
dizin.
XML testi sonucu dosyaları: |
Gradle destekleri
görev adlarının kısaltmalarını kullanın.
Örneğin, şunları yaparak connectedAndroidTest görevini başlatabilirsiniz:
aşağıdaki komutu girerek:
./gradlew cATAyrıca check ve connectedCheck Gradle görevlerini çalıştırmayı seçebilirsiniz. Bu
yerel veya araçlı testlerinizi çalıştırır;
diğer Gradle eklentileri tarafından eklenen diğer kontrolleri içerir.
Modül üzerinde test çalıştırma
test ve connectedAndroidTest görevleri,
belirler. Belirli bir modülde test çalıştırmak için
test veya connectedAndroidTest görevinin önüne modül adı ve bir
iki nokta üst üste (:). Örneğin, aşağıdaki komut yalnızca
mylibrary modülü:
./gradlew mylibrary:connectedAndroidTestDerleme varyantında test çalıştırma
test ve connectedAndroidTest görevleri, her birinde testler çalıştırır.
projenizde varyant derleyin. Bir
aşağıdaki söz dizimini kullanan belirli bir derleme varyantı:
- Yerel birim testleri için:
./gradlew testVariantNameUnitTest - Araçlı testler için:
./gradlew connectedVariantNameAndroidTest
Belirli test yöntemlerini veya sınıfları çalıştırma
Gradle, yerel birim testlerini çalıştırırken aşağıdakileri kullanarak belirli testleri hedefleyebilmenizi sağlar:
--tests işareti. Örneğin, aşağıdaki komut yalnızca
Belirtilen derleme varyantı için sampleTestMethod testi. Şu konu hakkında daha fazla bilgi edinmek için:
--tests işaretini kullanarak Gradle'ın dokümanlarını okuyun
test filtreleme.
./gradlew testVariantNameUnitTest --tests '*.sampleTestMethod'
Adb ile testler yapın
Android Debug Bridge ile komut satırından test çalıştırdığınızda (adb) kullanıyorsanız diğer yöntemlere kıyasla yapılacak testleri seçmeye çalışın. Tek tek test yöntemlerini kullanın, testleri özel bir ek açıklamaya göre filtreleyin veya testi belirtin seçenekleri vardır. Test çalıştırması tamamen komut satırından kontrol edildiğinden, kabuk komut dosyalarıyla testinizi çeşitli şekillerde özelleştirebilirsiniz.
Komut satırından test gerçekleştirmek için adb shell komutunu çalıştırarak bir komut satırı başlatın
kabuğundan veya emülatörünüzde Bu kabuğun içinde
etkinlik yöneticisi
ile testlerinizi yapmak için am komutunu ve instrument alt komutunu kullanın.
Kısayol olarak bir adb kabuğu başlatabilir, am instrument öğesini çağırabilir ve
tek bir giriş satırında yer alır. Kabuk cihazda açılır veya
emülatöründe çalışır, testlerinizi çalıştırır, çıkış üretir ve ardından komut satırına döner
Google Drive'a ekleyin.
am instrument ile test yapmak için:
- Ana uygulamanızı derleyin veya yeniden derleyin ve test paketi.
- Test paketinizi ve ana makinenizi yükleyin uygulamanızın Android paket dosyalarını (APK dosyaları) mevcut Android cihazınıza veya emülatörü kullanın.
Komut satırına şu kodu girin:
adb shell am instrument -w <test_package_name>/<runner_class>Burada
<test_package_name>, testinizin Android paketinin adıdır. uygulamasının (<runner_class>, Android test çalıştırıcı sınıfının adıdır) yardımcı olur. Android paketi adı, manifest öğesinin paket özelliğini test etmek için kullanın.AndroidManifest.xmlAndroid test çalıştırıcı sınıfı genellikle
AndroidJUnitRunner:adb shell am instrument -w com.android.example/androidx.test.runner.AndroidJUnitRunner
Test sonuçlarınız STDOUT konumunda görünür.
enstrüman bayrakları
am instrument komutuyla kullanılacak tüm flag'lerin listesini bulmak için
adb shell am help çalıştır. Bazı önemli işaretler
aşağıdaki tabloda bulabilirsiniz:
Tablo 2. Önemli am instrument
bayraklar
| İşaretle | Değer | Açıklama |
|---|---|---|
-w
|
(yok) |
am instrument, enstrümantasyon gerçekleşene kadar beklemeye zorlanır
kendiliğinden feshedilir. Bu sayede
kabuk açık kalır. Bu işaret, şunları yapmak için gereklidir:
testlerinizin sonuçlarını görebilirsiniz.
|
-r
|
(yok) |
Çıkışlar ham biçimde sonuçlar. Aşağıdaki durumlarda bu işareti kullanın:
şekilde biçimlendirilmemiş olmaları için performans ölçümlerini
test sonuçları. Bu işaret, bayrakla birlikte kullanılmak üzere tasarlanmıştır
-e perf true
am enstrüman seçenekleri) bölümüne bakın.
|
-e
|
<test_options>
|
Anahtar/değer çiftleri olarak test seçenekleri sağlar. İlgili içeriği oluşturmak için kullanılan
am instrument aracı, bunları belirtilen hedefe iletir
enstrümantasyon dersini
onCreate()
yöntemidir. Aynı öğenin birden fazla tekrarını belirtebilirsiniz:
-e <test_options> Anahtarlar ve değerler:
aşağıdaki adımları izleyin:
am enstrüman seçenekleri bölümüne bakın. Şunları yapabilirsiniz:
bu anahtar/değer çiftlerini yalnızca
AndroidJUnitRunner
veya InstrumentationTestRunner ile
ve alt sınıflarını içerir. Bu sınıfları başka bir sınıfla kullanmanın herhangi bir etkisi yoktur.
|
--no-hidden-api-checks
|
(yok) | Gizli API'lerin kullanımıyla ilgili kısıtlamaları devre dışı bırakır. Daha fazla gizli API'lerin ne olduğu ve bunun Google Analytics'i kullanarak uygulama, okuma SDK dışı arayüzlerle ilgili kısıtlamalar. |
enstrüman seçenekleri
am instrument aracı, test seçeneklerini başarılı bir şekilde
AndroidJUnitRunner veya InstrumentationTestRunner
şu söz dizimiyle, -e işaretini kullanarak anahtar/değer çiftleri biçiminde:
-e <key> <value>
Bazı anahtarlar birden çok değeri kabul eder. Bir
virgülle ayrılmış liste. Örneğin,
AndroidJUnitRunner, package anahtarı için birden fazla değer sağlar:
adb shell am instrument -w -e package com.android.test.package1,com.android.test.package2 \
> com.android.test/androidx.test.runner.AndroidJUnitRunnerAşağıdaki tabloda, test çalıştırıcınızla kullanabileceğiniz anahtar/değer çiftleri listelenmiştir:
Tablo 3. -e flag'leriyle birlikte kullanılacak anahtar/değer çiftleri test koşucunuz
| Anahtar | Değer | Açıklama |
|---|---|---|
package
|
<Java_package_name>
|
test uygulamasındaki paket hakkında daha fazla bilgi edinin. Bunu kullanan tüm test durumu sınıfları paket adı yürütülür. Bunun bir Android paket adı; bir test paketinde, Android paket adı, ancak içinde çeşitli Java paketleri olabilir. |
class |
<class_name> |
Test durumundan birinin tam nitelikli Java sınıfı adı sınıflar. Yalnızca bu test durumu sınıfı yürütülür. |
<class_name>#method name |
Tam nitelikli test durumu sınıf adı ve yöntemlerinden biri Yalnızca bu yöntem yürütülür. Sınıfın arasındaki karma işaretine (#) dikkat edin adını ve yöntem adını girin. | |
func |
true |
Şu süreyi uzatan tüm test sınıflarını çalıştırır:
InstrumentationTestCase
|
unit |
true |
Şu ikisinden de uzunulmayan tüm test sınıflarını çalıştırır
InstrumentationTestCase veya
PerformanceTestCase.
|
size |
[small | medium | large]
|
Boyuta göre not eklenmiş bir test yöntemi çalıştırır. Ek açıklamalar
@SmallTest, @MediumTest ve
@LargeTest.
|
perf |
true |
Şunu uygulayan tüm test sınıflarını çalıştırır:
PerformanceTestCase
Bu seçeneği kullanırken -r işaretini
Çıkış ham biçimde tutulması için am instrument
ve test sonuçları olarak yeniden biçimlendirilmez.
|
debug |
true |
Testleri hata ayıklama modunda çalıştırır. |
log |
true |
Belirtilen tüm testleri yükler ve günlüğe kaydeder ancak çalıştırmaz. Test
bilgileri STDOUT içinde görünüyor. Doğrulamak için bunu kullanın
kombinasyonlarını test etmek için kullanılır.
|
emma |
true |
EMMA kod kapsamı analizi yürütür ve çıktıyı
Cihazda /data/<app_package>/coverage.ec. Alıcı:
dosya konumunu geçersiz kılmak için coverageFile tuşunu kullanın
'ne gidin.
Not: Bu seçenek için EMMA özellikli bir cihaz gerekir.
kullanarak oluşturabileceğiniz bir test uygulamasının
|
coverageFile |
<filename> |
EMMA kapsam dosyasının
olanak tanır. Bu değeri UNIX biçiminde yol ve dosya adı olarak belirtin.
Varsayılan dosya adı
emma tuşu.
|
-e işaretini kullanırken aşağıdakilere dikkat edin:
am instrumentçağırıronCreate(Bundle)içeren birBundleile çiftler.packageanahtarı,classanahtarına göre önceliklidir. Bir paket ve ardından ayrı ayrı bu paket içinde bir sınıf belirtmek paketteki tüm testleri çalıştırır ve sınıf anahtarını yoksayar.funcanahtarı ileunitanahtarı birlikte kullanılamaz.
Kullanım örnekleri
Aşağıdaki bölümlerde, testleri çalıştırmak için am instrument kullanımıyla ilgili örnekler verilmiştir.
Bunlar aşağıdaki yapıya dayanır:
- Test paketinin Android paket adı
com.android.demo.app.tests. - İki araçlı test sınıfı:
TestClass1(testMethod1test yöntemini içerir).TestClass2(testMethod2vetestMethod3test yöntemlerini içerir).
- Test çalıştırıcısı
AndroidJUnitRunner.
Test paketinin tamamını çalıştırma
Test paketindeki tüm test sınıflarını çalıştırmak için şunu girin:
adb shell am instrument -w com.android.demo.app.tests/androidx.test.runner.AndroidJUnitRunnerTüm testleri bir test durumu sınıfında çalıştırma
TestClass1 sınıfındaki tüm testleri çalıştırmak için şunu girin:
adb shell am instrument -w \
> -e class com.android.demo.app.tests.TestClass1 \
> com.android.demo.app.tests/androidx.test.runner.AndroidJUnitRunnerTest alt kümesi seçin
TestClass1 sınıfındaki ve TestClass2 yöntemindeki testMethod3 yöntemindeki tüm testleri çalıştırmak için
girin:
adb shell am instrument -w \
> -e class com.android.demo.app.tests.TestClass1,com.android.demo.app.tests.TestClass2#testMethod3 \
> com.android.demo.app.tests/androidx.test.runner.AndroidJUnitRunnerDaha fazla kullanım alanı için
AndroidJUnitRunner
API referansı.