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

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

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

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

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

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

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

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

في Eclipse، لتشغيل اختبار وحدة فردي، ما عليك سوى النقر بزر الماوس الأيمن على الاختبار و اختيار Run As (التشغيل بصفتها) > 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. وأسهل طريقة لإجراء ذلك هي إطلاق IDE IDE من إعدادات 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. إنشاء اتحاد تجاري
  2. وصِّل جهاز Android بالمضيف.
  3. تشغيل tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. يمكنك اختيار الجهاز اختياريًا من خلال إلحاق --serial <serial no> كما هو معروض في ناتج adb devices.

إجراء اختبارات ما قبل الإرسال في TF على التغييرات المحلية

إذا كنت تريد إجراء عملية الفحص بالطريقة نفسها التي يتم بها إرسال النموذج إلى Trusted Testers، استخدِم ما يلي:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

سيؤدي ذلك إلى بدء جميع اختبارات ما قبل الإرسال لنموذج TF على نموذج TF الذي تم إنشاؤه محليًا ل help you validate that your change is not breaking any tests.

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