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 cAT
Ayrı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:connectedAndroidTest
Derleme 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.xml
Android 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.AndroidJUnitRunner
Aş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 birBundle
ile çiftler.package
anahtarı,class
anahtarı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.func
anahtarı ileunit
anahtarı 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
(testMethod1
test yöntemini içerir).TestClass2
(testMethod2
vetestMethod3
test 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.AndroidJUnitRunner
Tü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.AndroidJUnitRunner
Test 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.AndroidJUnitRunner
Daha fazla kullanım alanı için
AndroidJUnitRunner
API referansı.