إعدادات اختبار معقّدة

قد تتطلب بعض وحدات الاختبار إعدادًا مخصَّصًا وتفصيل خطوات لا يمكنها داخل حالة الاختبار نفسها. تشمل الأمثلة المعتادة ما يلي:

  • تثبيت حِزم APK أخرى (بالإضافة إلى ملف apk التجريبي)
  • إرسال بعض الملفات إلى الجهاز
  • أوامر تشغيل (مثل adb shell pm ...)

في الماضي، تلجأ فرق المكونات عادةً إلى كتابة اختبار من جانب المضيف أداء هذه المهام، مما يتطلب فهمًا لسياسة الاتحاد التجاري وعادةً ما يزيد من تعقيد وحدة الاختبار .

وبالاستعانة بخدمات CTS، قدَّمنا مفهوم ضبط وحدة الاختبار لدعم مثل هذه المهام، يمكن تحقيق قائمة المهام الشائعة أعلاه من خلال بضعة أسطر من . لتحقيق أكبر قدر من المرونة، يمكنك حتى تنفيذ استهدافك الخاص. المُعِدّ، على النحو المحدّد في ITargetPreparer أو ITargetCleaner، وتهيئتها لاستخدامها في تهيئة وحدة الاختبار.

إنّ تكوين وحدة الاختبار لوحدة الاختبار هو ملف XML مطلوب تتم إضافته إلى الأعلى. مجلد المصدر لوحدة المستوى باسم "AndroidTest.xml". يتّبع تنسيق XML التنسيق من ملف إعداد يستخدمه برنامج التشغيل الآلي لاختبار اتحاد التجارة. في الوقت الحالي، العلامات الرئيسية التي تتم معالجتها من خلال تهيئة وحدة الاختبار هي “target_preparer”. "اختبار" .

جهات إعداد مستهدفة

تحدد علامة "target_preparer"، كما يوحي الاسم، أداة تحضير الهدف. (يُرجى الاطّلاع على ITargetPreparer) توفر طريقة إعداد يتم استدعاؤها قبل تنفيذ وحدة الاختبار للاختبار؛ وإذا كانت الفئة المشار إليها في علامة "target_preparer" أيضًا implements ITargetCleaner، فسيتم استدعاء طريقة تقسيمها بعد الانتهاء من وحدة الاختبار.

لاستخدام إعدادات الوحدة المشتركة المضمنة، أضِف ملفًا جديدًا باسم AndroidTest.xml على بمجلد المستوى الأعلى لوحدة الاختبار، وأقوم بتعبئته بما يلي المحتوى:

<?xml version="1.0" encoding="utf-8"?>
<!-- [insert standard AOSP copyright here] -->
<configuration description="Test module config for Foo">
<!-- insert options here -->
</configuration>

كمثال، يمكننا إضافة علامات الخيارات التالية (في التعليق "insert" أعلاه):

    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
        <option name="run-command" value="settings put secure accessibility_enabled 1" />
        <option name="teardown-command" value="settings put secure accessibility_enabled 0" />
    </target_preparer>

ستؤدي الخيارات إلى ضبط شريط الاختبار على:

  1. قبل استدعاء الوحدة التجريبية، نفِّذ أمر واجهة الأوامر "الإعدادات وضع آمن" إمكانية الوصول: 1 بوصة على الجهاز
  2. بعد الانتهاء من وحدة الاختبار، نفِّذ أمر "الإعدادات" (الإعدادات) في "الإعدادات الآمنة" (settings mode) Accessibility_enabled 0"

في هذا المثال بالذات، يتم تمكين/إيقاف إمكانية الوصول قبل/بعد على تنفيذ وحدة الاختبار على التوالي. من خلال توضيح مثال بسيط، ضرورية لتغطية المزيد من التفاصيل حول كيفية استخدام علامة “option”. كما هو موضح أعلاه، يمكن أن يكون للعلامة سمتان: الاسم والقيمة. يجب أن تشير سمة الاسم إلى أحد الخيارات التي يقدمها الجاهز.

يعتمد الغرض الدقيق لحقل القيمة على كيفية تعريف المُعِدّ الخيار: يمكن أن يكون سلسلة أو رقمًا أو قيمة منطقية أو حتى مسار ملف. في ما يلي ملخّص لجهات إعداد الاستهداف الثلاثة الشائعة:

  • اسم الصف: PushFilePreparer

    • short name: Push-file
    • الدالة: يدفع الملفات العشوائية ضمن مجلد حالة الاختبار إلى الوجهة على الجهاز
    • ملاحظات:
      • يمكن لأداة التجهيز هذه الانتقال من مجلد إلى آخر، أو من ملف إلى ملف؛ الذي/التي هو أنه لا يمكنك وضع ملف ضمن مجلد على الجهاز: فيجب حدد اسم الملف الوجهة ضمن هذا المجلد أيضًا
    • الخيارات:
      • push-file: أمر Push-spec ، الذي يحدد الملف المحلي إلى المسار في المكان الذي يجب وضعه فيه على الجهاز. يمكن تكراره. في حال تعدُّد الملفات ليتم دفعها إلى نفس المسار البعيد، سيتم دفع الأحدث.
      • الدفع: (متوقّف نهائيًا) مواصفات دفع، يتم تنسيقها على النحو التالي "/path/to/srcfile.txt->/path/to/destfile.txt" أو /path/to/srcfile.txt->/path/to/destdir/ يمكن تكراره. وقد يرتبط هذا المسار بدليل وحدة الاختبار أو الدليل الخارجي الدليل نفسه.
      • post-push: أمر يتم تشغيله على الجهاز (باستخدام "adb shell <your command>") بعد محاولة إجراء جميع عمليات الدفع. معدّل الاستخدام في هذه الحالة، استخدام أمر chmod للحصول على الأذونات
  • اسم الفئة: InstallApkSetup

    • short name:install-apk
    • الدالة: تدفع ملفات apk العشوائية إلى الوجهة على جهاز
    • الخيارات:
      • test-file-name: اسم ملف APK المراد تثبيته عليه الخاص بك.
      • دالة install-arg: الوسيطات الإضافية التي سيتم تمريرها إلى عملية التثبيت مساءً بما في ذلك الشرطة البادئة، على سبيل المثال "-د". يمكن تكرارها
  • اسم الفئة: RunCommandTargetPreparer

    • الاسم المختصر: run-command
    • الدالة: تنفّذ أوامر عشوائية في واجهة المستخدم قبل الاختبار أو بعده تنفيذ الوحدة
    • الخيارات:
      • run-command:أمر adb shell لتشغيله. يمكن تكرارها
      • teardown-command:أمر adb shell لتشغيله أثناء مرحلة البيع. يمكن تكرارها

حصة الاختبار

فئة الاختبار هي فئة الاتحاد التجاري لاستخدامها لتنفيذ الاختبار.

<test class="com.android.tradefed.testtype.AndroidJUnitTest">
  <option name="package" value="android.test.example.helloworld"/>
  <option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/>
</test>

فيما يلي ثلاث فصول اختبار شائعة:

  • اسم الفئة: GTest

    • الاسم المختصر: gtest
    • الوظيفة: اختبار يشغّل حزمة اختبار أصلية على جهاز معيّن
    • الخيارات:
      • Native-test-device-path: هو المسار على الجهاز الذي توجد فيه الاختبارات الأصلية.
  • اسم الصف: instrumentationTest

    • الاسم المختصر: الأداة
    • الوظيفة: اختبار يشغِّل حزمة اختبار أدوات على جهاز معيّن
    • الخيارات:
      • الحزمة: اسم حزمة البيان لتطبيق اختبار Android المطلوب تشغيله.
      • class: اسم فئة الاختبار المطلوب تنفيذه.
      • method:اسم طريقة الاختبار المطلوب تنفيذها.
  • اسم الفئة: AndroidJUnitTest

    • الوظيفة: اختبار الذي يشغّل حزمة اختبار أدوات على حساب معيّن جهاز باستخدام android.support.test.runner.AndroidJUnitRunner هذه هي الطريقة الرئيسية لتنفيذ اختبار قياس حالة التطبيق.