تكوين البناء البسيط

يجب أن تحتوي كل وحدة اختبار جديدة على ملف تكوين لتوجيه نظام الإنشاء ببيانات وصفية للوحدة وتبعيات وقت التجميع وتعليمات الحزم. يستخدم الروبوت الآن بناء نظام سونغ من أجل تكوين اختبار أبسط.

يستخدم سونغ مخطط أو .bp الملفات، والتي هي JSON مثل الوصف التعريفي بسيطة من وحدات لبناء. يحل هذا التنسيق محل النظام المستند إلى Make المستخدم في الإصدارات السابقة. رؤية الملفات المرجعية سونغ على التكامل لوحة المستمر للحصول على التفاصيل كاملة.

لاستيعاب اختبار مخصص أو استخدام الروبوت اختبار توافق جناح (CTS)، اتبع تكوين اختبار مجمع بدلا من ذلك.

مثال

يأتي الإدخالات أدناه من هذا المثال ملف تكوين مخطط: /platform_testing/tests/example/instrumentation/Android.bp

يتم تضمين لقطة هنا للراحة:

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

لاحظ android_test إعلان في بداية يشير هذا اختبار. بما في ذلك android_app ما يدل على العكس من هذا هو بدلا من ذلك حزمة البناء.

إعدادات

تحصل الإعدادات التالية على شرح:

    name: "HelloWorldTests",

و name مطلوب إعداد عندما android_test يتم تحديد نوع وحدة (في بداية كتلة). أنه يعطي اسما لوحدة الخاص بك، وسيتم تسمية APK ينتج عن ذلك من نفسه، ومع .apk احقة، على سبيل المثال في هذه الحالة، يدعى مما أدى اختبار APK كما HelloWorldTests.apk . وبالإضافة إلى ذلك، وهذا يعرف أيضا اسم الهدف جعل لوحدة الخاص بك، بحيث يمكنك استخدام make [options] <HelloWorldTests> لبناء وحدة الاختبار وكل تبعياته.

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

و static_libs وضع يرشد بناء نظام لدمج محتويات وحدات اسمه في APK الناتجة من الوحدة النمطية الحالية. وهذا يعني أنه من المتوقع كل وحدة اسمه لإنتاج .jar الملف، وسوف تستخدم مضمونه لحل المراجع CLASSPATH خلال وقت الترجمة، وكذلك دمجها في ملف apk الناتجة عن ذلك.

في هذا المثال ، الأشياء التي قد تكون مفيدة بشكل عام للاختبارات:

و android-support-test هو قبل البناء لمكتبة دعم اختبار الروبوت، والذي يتضمن اختبار عداء جديدة AndroidJUnitRunner : بديل للإهمال الآن المدمج في InstrumentationTestRunner ، مع دعم لJUnit4 اختبار الإطار. اقرأ المزيد في التطبيقات اختبار على الروبوت .

إذا كنت بناء وحدة الأجهزة الجديدة، يجب أن تبدأ دائما مع android-support-test مكتبة كما عداء الاختبار. ويشمل شجرة المصدر منصة أيضا الأطر اختبار مفيد أخرى مثل ub-uiautomator ، mockito-target ، easymock وأكثر من ذلك.

    certificate: "platform",

و certificate إعداد يرشد بناء نظام للتوقيع على APK مع نفس الشهادة كمنصة أساسية. هذا مطلوب إذا كان اختبارك يستخدم إذنًا محميًا بالتوقيع أو API. لاحظ أن هذا هو مناسبة لمنصة اختبار مستمر، ولكن لا ينبغي أن تستخدم في وحدات الاختبار CTS. لاحظ أن هذا المثال يستخدم إعداد الشهادة هذا لغرض التوضيح فقط: لا يحتاج رمز الاختبار الخاص بالمثال فعليًا إلى أن يتم توقيع ملف apk التجريبي بشهادة النظام الأساسي الخاصة.

إذا كنت تكتب جهازًا للمكوِّن الخاص بك والذي يعيش خارج خادم النظام ، أي أنه يتم حزمه بشكل أو بآخر مثل تطبيق apk عادي ، باستثناء أنه مضمّن في صورة النظام وقد يكون تطبيقًا مميزًا ، فمن المحتمل أن تكون أجهزتك تستهدف حزمة التطبيق (انظر القسم أدناه حول البيان) لمكونك. في هذه الحالة، قد يكون MAKEFILE التطبيق الخاص بها certificate الإعداد، وحدة القياس الخاصة بك ينبغي أن تحتفظ نفس الإعداد. هذا لأنه لاستهداف أجهزتك على التطبيق قيد الاختبار ، يجب أن يتم توقيع ملف apk والتطبيق التجريبي الخاصين بك بنفس الشهادة.

وفي حالات أخرى، لا تحتاج أن يكون هذا الإعداد على الإطلاق: سيقوم النظام بناء مجرد التوقيع عليها مع الافتراضي المدمج في الشهادة، على أساس بناء البديل، وهذا عادة ما يسمى ب dev-keys .

    test_suites: ["device-tests"],

و test_suites الإعداد يجعل الاختبار اكتشافها بسهولة عن طريق اختبار تسخير الاتحاد التجاري. يمكن إضافة مجموعات أخرى هنا مثل CTS بحيث يمكن مشاركة هذا الاختبار.

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

إعدادات اختيارية

تحصل الإعدادات الاختيارية التالية على شرح:

    test_config: "path/to/hello_world_test.xml"

و test_config إعداد يرشد بناء نظام هدف الاختبار يحتاج إلى التكوين محددة. افتراضيا، وهو AndroidTest.xml بجانب Android.bp يرتبط التكوين.

    auto_gen_config: true

و auto_gen_config يشير الإعداد ما إذا كان أو لم يكن لإنشاء التكوين اختبار تلقائيا. إذا AndroidTest.xml غير موجود بجانب Android.bp ، لا تحتاج هذه السمة لتعيين صحيح صريح.

    require_root: true

و require_root إعداد يرشد نظام بناء لإضافة RootTargetPreparer لصناعة السيارات ولدت اختبار التكوين. هذا يضمن تشغيل الاختبار بأذونات الجذر.

    test_min_api_level: 29

و test_min_api_level إعداد يرشد نظام بناء لإضافة MinApiLevelModuleController لصناعة السيارات ولدت اختبار التكوين. عند تشغيل الاتحاد التجاري التكوين الاختبار، والاختبار سيكون تخطي إذا كانت الممتلكات جهاز من ro.product.first_api_level < test_min_api_level .