Basit Yapı Yapılandırması

Her yeni test modülü, yapı sistemini modül meta verileri, derleme zamanı bağımlılıkları ve paketleme talimatlarıyla yönlendirmek için bir yapılandırma dosyasına sahip olmalıdır. Android artık kullandığı Soong yapı sistemini daha basit bir test yapılandırması için.

Soong Blueprint veya kullanan .bp sürüme modüllerin basit bildirim açıklamaları JSON benzeri dosyaları. Bu biçim, önceki sürümlerde kullanılan Make tabanlı sistemin yerini alır. Bkz Soong referans dosyaları üzerinde Sürekli Entegrasyon Dashboard tüm detaylar için.

Özel test barındırmak veya Android kullanmak için Uyumluluk Testi Suite (CTS) takip Kompleks Testi Yapılandırması yerine.

Örnek

Girişleri aşağıda bu örnek Blueprint yapılandırma dosyasından gelir: /platform_testing/tests/example/instrumentation/Android.bp

Kolaylık sağlamak için buraya bir anlık görüntü eklenmiştir:

android_test {
    name: "HelloWorldTests",
    srcs: ["src/**/*.java"],
    sdk_version: "current",
    static_libs: ["android-support-test"],
    certificate: "platform",
    test_suites: ["device-tests"],
}

Not android_test bu bir test olduğunu gösterir başında beyanı. Dahil android_app bu yerine inşa paketidir işaret tersi olur.

Ayarlar

Aşağıdaki ayarlar açıklama toplar:

    name: "HelloWorldTests",

name ne zaman ayarı gereklidir android_test modül tipi (bloğun başlangıcında) belirtilir. Bu sizin modülüne bir isim verir ve ortaya çıkan APK aynı ve birlikte adı olacak .apk Meydana gelen test apk olarak adlandırılan bu durumda örneğin soneki HelloWorldTests.apk . Ayrıca, bu da kullanabilirsiniz böylece, senin modülü için bir marka hedef adını tanımlayan make [options] <HelloWorldTests> test modülü ve tüm bağımlılıkları inşa etmek.

    static_libs: ["android-support-test"],

static_libs yapı sisteminin talimatı verir akım modülünün çıkan apk'de içine adında modüllerin içeriğini dahil etmek. Bu demektir ki adı geçen her bir modül oluşturmak için beklendiği .jar dosyasını, ve içeriği derleme sırasında sınıf yolu referanslarının ve aynı zamanda elde edilen Apk'nizin dahil için kullanılacaktır.

Bu örnekte, testler için genellikle yararlı olabilecek şeyler:

android-support-test yeni test atlet içerir Android Testi Destek Kütüphanesi için önceden oluşturulmuş olan AndroidJUnitRunner : yerini şimdi artık yok yerleşik InstrumentationTestRunner , JUnit4 test framework desteği ile. Devamı için Android'de Testi uygulamalar .

Yeni bir enstrümantasyon modülünü inşa ediyoruz, her zaman başlamalı android-support-test test koşucu olarak kütüphanede. Platform kaynak ağacı, aynı zamanda, diğer yararlı test çerçeveler içerir ub-uiautomator , mockito-target , easymock ve daha fazlası.

    certificate: "platform",

certificate ayar çekirdek platformu aynı sertifika ile APK imzalamak için kurulum sistemine yönlendirir. Testiniz imza korumalı bir izin veya API kullanıyorsa bu gereklidir. Bu platform, sürekli test için uygun olmakla birlikte, CTS testi modüllerde kullanılan gerektiğini not edin. Bu örneğin, bu sertifika ayarını yalnızca açıklama amacıyla kullandığını unutmayın: örneğin test kodunun, test apk'sinin özel platform sertifikasıyla imzalanmasına gerçekten ihtiyacı yoktur.

Bileşeniniz için sistem sunucusunun dışında yaşayan bir enstrümantasyon yazıyorsanız, yani sistem görüntüsünde yerleşik olması ve ayrıcalıklı bir uygulama olması dışında aşağı yukarı normal bir uygulama apk'si gibi paketlenmişse, enstrümantasyonunuzun büyük olasılıkla bileşeninizin uygulama paketini hedefleyin (manifest ile ilgili aşağıdaki bölüme bakın). Bu durumda, başvurunuz makefile kendi olabilir certificate ayarını ve enstrümantasyon modülü aynı ayarı muhafaza edilmelidir. Bunun nedeni, enstrümantasyonunuzu test edilen uygulamada hedeflemek için test apk'nizin ve uygulama apk'nizin aynı sertifikayla imzalanmış olması gerektiğidir.

Yapı sistemi basitçe bir varsayılan yerleşik sertifikası, yapı varyantı dayalı birlikte imza olacak ve genellikle denir: Diğer durumlarda, hiç bu ayar gerekmez dev-keys .

    test_suites: ["device-tests"],

test_suites ayar Ticaret Federasyonu testi koşum ile kolayca keşfedilebilir testini yapar. Bu testin paylaşılabilmesi için CTS gibi başka süitler de buraya eklenebilir.

${ANDROID_PRODUCT_OUT}/testcases/HelloWorldTests/HelloWorldTests.apk

İsteğe bağlı ayarlar

Aşağıdaki isteğe bağlı ayarlar açıklama toplar:

    test_config: "path/to/hello_world_test.xml"

test_config ayarı test hedef belirli yapılandırma ihtiyacı inşa sistemi yönlendirir. Varsayılan olarak, bir AndroidTest.xml yanındaki Android.bp yapılandırma ile ilişkilidir.

    auto_gen_config: true

auto_gen_config ayarı otomatik olarak test yapılandırma oluşturmak için olup olmadığını gösterir. Eğer AndroidTest.xml yanındaki yok Android.bp , bu özellik açıkça true olarak ayarlanması gerekmez.

    require_root: true

require_root ayarında otomatik oluşturulan test config RootTargetPreparer eklemek için inşa sistemi yönlendirir. Bu, testin kök izinleriyle çalışmasını garanti eder.

    test_min_api_level: 29

test_min_api_level ayarında otomatik oluşturulan test config MinApiLevelModuleController eklemek için inşa sistemi yönlendirir. Ticaret Federasyonu testi yapılandırma çalıştırıldığında, test atlandı olacaksa cihaz özelliği ro.product.first_api_level < test_min_api_level .