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'de kullanımı daha basit hale getirmek için artık Soong derleme sistemini test yapılandırması.

Yakındag, JSON benzeri basit bildirimsel dosyalar olan Blueprint veya .bp dosyalarını kullanır. modüllerin açıklamaları var. Bu biçim, Marka tabanlı sistemin yerini alır önceki sürümlerde kullanılır. Soong referans dosyalarına bakın başlıklı makaleyi inceleyin.

Özel testler gerçekleştirmek veya Android Compatibility Test Suite (CTS) için, 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ğlaması açısından 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, tersine bunun bir derleme olduğunu gösterir paketinden yararlanın.

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 içerikleri dahil etmesi talimatını verir geçerli modülün sonuç apk'sine kopyalamasına yardımcı olur. 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 araç modülü oluşturuyorsanız her zaman androidx.test.runner kitaplığını test çalıştırıcınız olarak kullanın. 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 kullanıyorsa bu gereklidir korumalı izin veya API. 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 örneklendirme amacıyla kullanır: test kodu aslında test apk'nin özel platform sertifikası.

Bileşeniniz için işletmenizin dışında bulunan bir araç oluşturuyorsanız normal bir uygulama APK'sı gibi daha çok veya daha az paketlenir Ancak sistem görüntüsünde yerleşik olarak bulunuyor ve ayrıcalıklı bir uygulama araçlarınızın uygulama paketini hedefleyeceğinden emin olun (aşağıya bakın manifesto bölümünü inceleyin). Bu durumda başvurunuz makefile'ın kendi certificate ayarı olabilir ve araçlarınız modülünün aynı ayarı koruması gerekiyor. Çü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 ticari müşteriler tarafından kolayca bulunabilmesini sağlar. Federasyon test bandı. CTS gibi diğer süitler buraya eklenebilir. paylaşılabilir.

${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 ekleme talimatı verir otomatik olarak oluşturulan test yapılandırmasına eklenir. Bu, testin root ile çalışmasını garanti eder izin verir.

    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.