يوضّح هذا القسم كيفية تشغيل اختبارات 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، اتّبِع الخطوات التالية:
- تأكَّد من ربط جهاز بالمضيف ومن أنّ
adb
وfastboot
(إذا لزم الأمر) مضمّنان في PATH في Eclipse. أسهل طريقة لإجراء ذلك هي تشغيل Eclipse من إعداد shell مع PATH المناسب. - أنشئ تطبيق Java. يمكنك تشغيل الإعداد من خلال تشغيل > تشغيل الإعدادات.
- اضبط المشروع على
tradefed-tests
والفئة الرئيسية علىcom.android.tradefed.command.CommandRunner
. - نفِّذ الأمر
m tradefed-all
. - قدِّم وسيطات سطر الأوامر التالية في علامة التبويب الوسيطات:
host --class <full path of test class to run>
- انقر على تشغيل.
لتنفيذ اختبارات وظيفية خارج Eclipse، اتّبِع الخطوات التالية:
- بناء اتحاد التجارة
- وصِّل جهاز Android بالجهاز المضيف.
- تشغيل
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
- يمكنك اختياريًا اختيار الجهاز من خلال إضافة
--serial <serial no>
كما يظهر في ناتجadb devices
.
إجراء اختبارات ما قبل الإرسال في TensorFlow على التغييرات المحلية
إذا كنت تريد التشغيل بطريقة مشابهة لعملية الإرسال المسبق في TF، استخدِم ما يلي:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
سيؤدي ذلك إلى تشغيل جميع اختبارات الإرسال المسبق في TensorFlow ضد إصدار TensorFlow الذي تم إنشاؤه محليًا لمساعدتك في التأكّد من أنّ التغيير الذي أجريته لا يؤدي إلى إيقاف أي اختبارات.
تُعدّ اختبارات ما قبل الإرسال في TF مجموعة فرعية من اختبارات الوحدات المذكورة أعلاه، ولكنّ تنفيذها يستغرق وقتًا أطول. لذا، ننصح بتشغيل اختبارات الوحدات أثناء عملية التطوير للتحقّق من الصحة بشكل أسرع، وتشغيل عمليات التحقّق المسبق قبل تحميل قائمة التغيير.