Basit derleme yapılandırması

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.