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

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

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

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

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

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

إجراء اختبارات الوحدة

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

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

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

يمكن تنفيذ اختبارات الوحدة بشكل مستقل، ولكن يجب تنفيذ الاختبارات الوظيفية باستخدام الاتحاد التجاري نفسه فإنها تتطلب جهاز 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.

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

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

إجراء اختبارات وظيفية

لإجراء اختبار وظيفي من Eclipse:

  1. تأكَّد من اتصال جهاز بالمضيف وadb وإذا لزم الأمر. fastboot موجود في PATH في Eclipse. أسهل طريقة للقيام بذلك هي إطلاق حدوث الكسوف من إعداد واجهة النظام باستخدام المسار 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 مقابل التغييرات المحلية

إذا كنت تريد التشغيل بطريقة مشابهة مثل الإرسال المسبق TF، استخدِم ما يلي:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

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

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