تضمين اختبارات الوحدة والاختبارات الوظيفية

يوضّح هذا القسم كيفية تشغيل اختبارات Trade Federation والمساهمة فيها بعد إجراء تغيير في المشروع. ويشمل ذلك ما يلي:

  • مكان إضافة فئات اختبارات الوحدات الجديدة
  • تشغيل اختبارات الوحدات في Eclipse وخارج بيئة تطوير Eclipse المتكاملة
  • مكان إضافة الاختبارات الوظيفية
  • تشغيل الاختبارات الوظيفية
  • تشغيل بعض اختبارات التحقّق من صحة الإرسال المسبق في TF محليًا

إضافة اختبارات الوحدات

في مشروع Android المفتوح المصدر (AOSP)، أضِف فئة اختبارات الوحدات في: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

ملاحظة مهمة: ستؤدي إضافة فئات اختبارات الوحدات الجديدة إلى هذه المواقع إلى تشغيلها تلقائيًا في اختبارات التحقّق من صحة الإرسال المسبق بدون إعداد إضافي.

تشغيل اختبارات الوحدات

تتوفّر جميع اختبارات الوحدات والاختبارات الوظيفية في AOSP لـ Trade Federation في الـ tools/tradefederation/core/tests مشروع.

لتشغيل اختبار وحدة فردي داخل Eclipse، ما عليك سوى النقر بزر الماوس الأيمن على الاختبار واختيار تشغيل كـ > JUnit. لتشغيل جميع اختبارات الوحدات، شغِّل مجموعة com.android.tradefed.UnitTests.

يمكنك أيضًا بدء اختبار الوحدة من سطر الأوامر في شجرة مصدر Tradefed بعد الإنشاء، على النحو التالي: tools/tradefederation/core/javatests/run_tradefed_tests.sh

يمكن تنفيذ اختبارات الوحدات بشكل مستقل، ولكن يجب تنفيذ الاختبارات الوظيفية باستخدام Trade Federation نفسه، وهي تتطلّب جهاز Android. يجب أن تتبع جميع الاختبارات الوظيفية اصطلاح التسمية *FuncTest.

التحقّق من نتائج اختبارات الوحدات

عند تشغيل run_tradefed_tests.sh، تُجري اختبارات الوحدات جميع أجزاء مجموعة أدوات الاختبار، بما في ذلك بعض حالات الخطأ. وستعرض هذه الاختبارات ناتجًا مفصّلاً في وحدة التحكّم، بما في ذلك عمليات تتبُّع تسلسل استدعاء الدوال البرمجية.

سيشير الملخّص النهائي للنتائج إلى ما إذا حدث خطأ أم لا.

مثال على الملخّص النهائي في وحدة التحكّم:

12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]

يتم الحفاظ على جميع الاختبارات لضمان نجاحها، لذا إذا حدث أي خطأ في التغيير المحلي، يُرجى التأكّد من إصلاح الاختبارات.

إضافة الاختبارات الوظيفية

  • إذا كان اختبارك الوظيفي يتضمّن جهازًا (يستخدم أي واجهة برمجة تطبيقات ITestDevice)، يكون تعريف المجموعة في com.android.tradefed.DeviceFuncTests. بخلاف ذلك، يكون تعريف المجموعة في com.android.tradefed.FuncTests.

  • إذا كان من المنطقي وضع طرق الاختبار في إحدى الفئات الفرعية الحالية للمجموعة، يُفضّل إضافتها هناك. بخلاف ذلك، يمكنك إضافة فئة جديدة إلى المجموعة المناسبة.

  • في كلتا الحالتَين، عند إضافة الاختبار إلى المجموعة، يتم تشغيله تلقائيًا في مسار التكامل المستمر مع الاختبارات الوظيفية الأخرى.

تشغيل الاختبارات الوظيفية

لتشغيل اختبار وظيفي من Eclipse:

  1. تأكَّد من توصيل جهاز بالمضيف ومن أنّ adb وfastboot (إذا لزم الأمر) في PATH في Eclipse. أسهل طريقة لإجراء ذلك هي تشغيل Eclipse من إعداد shell باستخدام PATH المناسب.
  2. أنشئ تطبيق Java. شغِّل الإعداد من خلال تشغيل > إعدادات التشغيل.
  3. اضبط المشروع على tradefed-tests والفئة الرئيسية على com.android.tradefed.command.CommandRunner.
  4. شغِّل m tradefed-all.
  5. قدِّم وسيطات سطر الأوامر التالية في علامة التبويب الوسيطات: host --class <full path of test class to run>
  6. انقر على تشغيل.

لتشغيل الاختبارات الوظيفية خارج Eclipse:

  1. أنشئ Trade Federation.
  2. وصِّل جهاز Android بالمضيف.
  3. شغِّل tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. يمكنك اختياريًا اختيار الجهاز عن طريق إلحاق --serial <serial no> كما يظهر في ناتج adb devices.

تشغيل اختبارات التحقّق من صحة الإرسال المسبق في TF على التغييرات المحلية

إذا أردت التشغيل بطريقة مشابهة لطريقة التحقّق من صحة الإرسال المسبق في TF، استخدِم ما يلي:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

سيؤدي ذلك إلى تشغيل جميع اختبارات التحقّق من صحة الإرسال المسبق في TF على TF الذي تم إنشاؤه محليًا لمساعدتك في التحقّق من أنّ التغيير الذي أجريته لا يؤدي إلى إيقاف أي اختبارات.

اختبارات التحقّق من صحة الإرسال المسبق في TF هي مجموعة فرعية من اختبارات الوحدات أعلاه، ولكن تشغيلها أبطأ. لذا، ننصح بتشغيل اختبارات الوحدات أثناء التطوير للتحقّق من صحة البيانات بشكل أسرع وتشغيل اختبارات التحقّق من صحة الإرسال المسبق قبل تحميل طلب تغيير الرمز البرمجي.