Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Basit Yapı Yapılandırması

Her yeni test modülünün, yapı sistemini modül meta verileri, derleme zamanı bağımlılıkları ve paketleme talimatları ile yönlendirmek için bir yapılandırma dosyasına sahip olması gerekir. Android artık daha basit test yapılandırması için Soong derleme sistemini kullanıyor.

Soong, oluşturulacak modüllerin JSON benzeri basit bildirime dayalı açıklamaları olan Blueprint veya .bp dosyalarını kullanır. Bu format, önceki sürümlerde kullanılan Make-tabanlı sistemin yerini alır. Tüm ayrıntılar için Continuous Integration Dashboard'daki Soong referans dosyalarına bakın.

Özel testleri gerçekleştirmek veya Android Uyumluluk Test Paketi'ni (CTS) kullanmak için, bunun yerine Karmaşık Test Yapılandırmasını izleyin.

Misal

Aşağıdaki girişler, 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ü dahildir:

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

android_test bildiriminin bunun bir test olduğunu gösterdiğini unutmayın. android_app dahil edilmesi, bunun yerine bir derleme paketi olduğunu gösterir.

Ayarlar

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

    name: "HelloWorldTests",

android_test modül türü belirtildiğinde (bloğun başında) name ayarı gereklidir. Modülünüze bir ad verir ve ortaya çıkan APK aynı şekilde adlandırılır ve bir .apk sonekiyle, örneğin bu durumda, sonuçta ortaya çıkan test apk, HelloWorldTests.apk olarak adlandırılır. Buna ek olarak, bu aynı zamanda modülünüz için bir hedef oluşturma adı tanımlar, böylece test modülünüzü ve tüm bağımlılıklarını oluşturmak için make [options] <HelloWorldTests> kullanabilirsiniz.

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

static_libs ayarı, derleme sistemine adlandırılmış modüllerin içeriğini geçerli modülün sonuç static_libs dahil etmesi talimatını verir. Bu, adlandırılmış her modülün bir .jar dosyası oluşturmasının beklendiği anlamına gelir ve içeriği, derleme sırasında sınıf yolu referanslarını çözümlemek için kullanılacağı gibi elde edilen apk'ye dahil edilir.

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

android-support-test , yeni test çalıştırıcısı AndroidJUnitRunner içeren Android Test Destek Kitaplığı için önceden oluşturulmuştur: JUnit4 test çerçevesini destekleyen, artık kullanımdan kaldırılmış yerleşik InstrumentationTestRunner yerini almıştır. Android'de uygulamaları test etme bölümünde daha fazlasını okuyun.

Yeni bir enstrümantasyon modülü oluşturuyorsanız, test çalıştırıcınız olarak her zaman android-support-test kitaplığıyla başlamalısınız. Platform kaynak ağacı ayrıca ub-uiautomator , mockito-target , easymock ve daha fazlası gibi diğer yararlı test çerçevelerini de içerir.

    certificate: "platform",

certificate ayarı, derleme sistemine apk'yi çekirdek platformla aynı sertifikayla imzalaması talimatını verir. Testiniz imza korumalı bir izin veya API kullanıyorsa bu gereklidir. Bunun sürekli platform testi için uygun olduğunu, ancak CTS test modüllerinde kullanılmaması gerektiğini unutmayın . Bu örneğin, bu sertifika ayarını yalnızca gösterim amacıyla kullandığına dikkat edin: örneğin test kodunun, test apk'sinin özel platform sertifikasıyla imzalanmasına gerçekten gerek yoktur.

Sistem sunucusunun dışında yaşayan bileşeniniz için bir araç yazıyorsanız, yani, sistem görüntüsünde yerleşik olması ve ayrıcalıklı bir uygulama olması dışında, normal bir uygulama apk'si gibi aşağı yukarı paketlenmiş bir araç yazıyorsanız, araçlarınız muhtemelen bileşeninizin uygulama paketini (manifest ile ilgili aşağıdaki bölüme bakın) hedefliyor. Bu durumda, uygulama makefile'ınızın kendi certificate ayarı olabilir ve enstrümantasyon modülünüz aynı ayarı korumalıdır. Bunun nedeni, enstrümantasyonunuzu test edilen uygulamada hedeflemek için test apk'nizin ve uygulama apk'nizin aynı sertifika ile imzalanması gerektiğidir.

Diğer durumlarda, bu ayara hiç sahip olmanıza gerek yoktur: derleme sistemi, derleme varyantına bağlı olarak varsayılan bir yerleşik sertifika ile imzalayacaktır ve buna genellikle dev-keys denir.

    test_suites: ["device-tests"],

test_suites ayarı, testi Ticaret Federasyonu test koşum takımı tarafından kolayca keşfedilebilir hale getirir. Buraya CTS gibi diğer süitler eklenebilir, böylece bu test paylaşılabilir.

${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 hedefinizin belirli bir yapılandırmaya ihtiyacı olan derleme sistemine talimat verir. Varsayılan olarak, Android.bp yanındaki bir AndroidTest.xml , yapılandırma ile ilişkilendirilir.

    auto_gen_config: true

auto_gen_config ayarı, test yapılandırmasının otomatik olarak oluşturulup oluşturulmayacağını belirtir. Android.bp yanında AndroidTest.xml yoksa, bu özniteliğin açıkça doğru 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ı, derleme sistemine MinApiLevelModuleController'ı otomatik oluşturulan test yapılandırmasına eklemesi talimatını verir. Trade Federation test yapılandırmasını çalıştırdığında, ro.product.first_api_level < test_min_api_level cihaz özelliği ise ro.product.first_api_level test_min_api_level .