Her yeni test modülünün derleme sistemini yönlendirmek için bir yapılandırma dosyası olmalıdır ve paketleme talimatları ile birlikte çalışabilir. Android artık daha basit test yapılandırması için Soong derleme sistemini kullanıyor.
Soong, derlenecek modüllerin JSON benzeri basit açıklayıcı açıklamaları olan Blueprint veya .bp
dosyalarını kullanır. Bu biçim, Marka tabanlı sistemin yerini alır
önceki sürümlerde kullanılır. Ayrıntılı bilgi için Sürekli Entegrasyon Kontrol Paneli'ndeki Soong referans dosyalarına bakın.
Özel testler gerçekleştirmek veya Android Uyumluluk Test Paketi (CTS), Karmaşık Test Yapılandırması .
Örnek
Aşağıdaki girişler, bu örnek Blueprint yapılandırma dosyasından gelir: /platform_testing/tests/örnek/araçlar/Android.bp
Kolaylık sağlamak amacıyla buraya bir anlık görüntü eklenmiştir:
android_test {
name: "HelloWorldTests",
srcs: ["src/**/*.java"],
sdk_version: "current",
static_libs: ["androidx.test.runner"],
certificate: "platform",
test_suites: ["device-tests"],
}
Baştaki android_test
beyanı bunun bir test olduğunu belirtir.
android_app
eklemek ise bunun bir derleme paketi olduğunu gösterir.
Ayarlar
Aşağıdaki ayarların açıklaması:
name: "HelloWorldTests",
android_test
modül türü belirtildiğinde name
ayarı gerekir
(blonun başında). Modülünüze bir ad verir ve bunun sonucunda
APK aynı şekilde adlandırılacak ve bir .apk
son eki (ör. Bu örnekte
sonuçta elde edilen test apk'si HelloWorldTests.apk
olarak adlandırılıyor. Ayrıca bu
modülünüz için bir yapma hedefi adı tanımlar. Böylece, test modülünüzü ve tüm bağımlılıklarını oluşturmak üzere make [options]
<HelloWorldTests>
öğesini kullanabilirsiniz.
static_libs: ["androidx.test.runner"],
static_libs
ayarı, derleme sistemine adlandırılmış modüllerin içeriklerini mevcut modülün oluşturulan APK'sına dahil etmesini söyler. Bunun anlamı,
adlandırılmış her modülün bir .jar
dosyası oluşturması beklenir ve içeriği
derleme süresi sırasında sınıf yolu referanslarını çözümlemek için ve
elde edilen apk'ye eklenir.
androidx.test.runner
modülü, AndroidX Test Runner için önceden oluşturulmuş bir modüldür
AndroidJUnitRunner
test çalıştırıcısını içeren kitaplık.
AndroidJUnitRunner
, JUnit4 test çerçevesini destekler ve
Android 10'da InstrumentationTestRunner
. Devamını okuyun
Android'de uygulamaları test etme başlıklı makaleden Android uygulamalarını test etme hakkında bilgi edinebilirsiniz.
Yeni bir enstrümantasyon modülü oluşturuyorsanız test çalıştırıcınız olarak her zaman androidx.test.runner
kitaplığını kullanmaya başlamanız gerekir. Platform kaynak ağacı
aynı zamanda ub-uiautomator
,
mockito-target
, easymock
ve daha fazlası.
certificate: "platform",
certificate
ayarı, derleme sistemine apk'yi aynı
temel platform olarak kullanmaya başladım. Testiniz imza korumalı bir izin veya API kullanıyorsa bu gereklidir. Sürekli platform için uygun olduğunu unutmayın
testinin yanı sıra CTS test modüllerinde kullanılmaması gerekir. Bu örneğin
bu sertifika ayarını yalnızca açıklama amacıyla kullanır: test kodu
aslında test apk'nin
özel platform sertifikası.
Bileşeniniz için sistem sunucusunun dışında bulunan bir enstrümantasyon yazıyorsanız (yani sistem görüntüsüne yerleştirilmiş ve ayrıcalıklı bir uygulama olması dışında normal bir uygulama APK'sı gibi paketlenmişse) enstrümantasyonunuz, bileşeninizin uygulama paketini (manifest ile ilgili bölüme bakın) hedefliyor olabilir. Bu durumda, uygulama makefile'inizin kendi certificate
ayarı olabilir ve enstrümantasyon modülünüzde aynı ayar korunmalıdır. Çünkü, müşterilerinizi hedeflemek
test APK'nız ve uygulama APK'nız imzalanmalıdır.
aynı sertifika ile.
Bazı durumlarda ise şu ayarı kullanmanız gerekmez: derleme sistemi
yerleşik bir sertifikayla imzalar. Bu, derlemeye
ve genellikle dev-keys
olarak adlandırılır.
test_suites: ["device-tests"],
test_suites
ayarı, testin Trade tarafından kolayca bulunabilmesini sağlar
Federasyon test bandı. Bu testin paylaşılabilmesi için CTS gibi diğer paketler de buraya eklenebilir.
${ANDROID_PRODUCT_OUT}/testcases/HelloWorldTests/HelloWorldTests.apk
İsteğe bağlı ayarlar
Aşağıdaki isteğe bağlı ayarların ortak açıklaması:
test_config: "path/to/hello_world_test.xml"
test_config
ayarı, derleme sistemine test hedefinizin bir
özel bir yapılandırmadır. Varsayılan olarak Android.bp
öğesinin yanındaki AndroidTest.xml
simgesi
yapılandırdığınızdan emin olun.
auto_gen_config: true
auto_gen_config
ayarı, test yapılandırmasının oluşturulup oluşturulmayacağını belirtir
otomatik olarak oluşturur. Android.bp
öğesinin yanında AndroidTest.xml
yoksa bu
özelliğinin "true" değerine ayarlanmasına gerek yoktur.
require_root: true
require_root
ayarı, derleme sistemine RootTargetPreparer'ı otomatik olarak oluşturulan test yapılandırmasına eklemesini söyler. Bu, testin root izinleriyle çalışacağını garanti eder.
test_min_api_level: 29
test_min_api_level
ayarı, derleme sistemine
MinApiLevelModuleController'ı otomatik oluşturulan test yapılandırmasına bağlayın. Ticaret Sırasında
Federasyon test yapılandırmasını çalıştırır. Cihaz özelliği
/ ro.product.first_api_level
< test_min_api_level
.