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

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

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

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

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

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

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

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

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

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

يمكن تنفيذ اختبارات الوحدة بشكل مستقل، ولكن يجب تنفيذ الاختبارات الوظيفية باستخدام Trade Union نفسه؛ أنها تتطلب جهاز 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. أسهل طريقة للقيام بذلك هي تشغيل Eclipse من إعداد Shell باستخدام PATH المناسب.
  2. إنشاء تطبيق جافا. قم بتشغيل التكوين عبر Run > Run settings .
  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.