GoogleTest

إنّ اختبار GoogleTest (المعروف أيضًا باسم GTest أو "الاختبارات الأصلية") للمنصة يستخدم عادةً واجهات HAL ذات المستوى الأدنى أو يُجري اتصالات بين العمليات الأساسية (IPC) مع خدمات النظام المختلفة. لهذا السبب، يكون منهج الاختبار مرتبطًا عادةً بشدّة بالخدمة التي يتم اختبارها.

للدمج مع البنية الأساسية للاختبار المستمر، يمكنك إنشاء اختبارات GTest باستخدام إطار عمل GTest.

أمثلة

في ما يلي بعض الأمثلة على GTest في مصدر النظام الأساسي:

ملخّص الخطوات

  1. اتّبِع مثال إعداد وحدة GTest.

  2. لتضمين تبعيات GTest تلقائيًا، استخدِم BUILD_NATIVE_TEST قاعدة الإنشاء في إعدادات وحدة الاختبار.

  3. اكتب إعداد اختبار، مع اتّباع الأمثلة للخيارات البسيطة والمعقدة.

  4. أنشئ وحدة الاختبار باستخدام mmm للإصدارات المتزايدة، أو mma للإصدارات الكاملة:

    make hwui_unit_tests -j
    
  5. يمكنك إجراء الاختبار محليًا باستخدام Atest:

      atest hwui_unit_tests
    

    يمكنك أيضًا إضافة مَعلمات إلى اختبارات GTests. في ما يلي الوسيطات المفيدة بشكل خاص:

    • native-test-flag تحدِّد قيم علامات إضافية لنقلها إلى أمر GTest shell.
    • native-test-timeout تحدِّد قيمة مهلة الاختبار بالميكرو ثانية.

      يستخدِم مثال الرمز البرمجي التالي كلتا الوسيطات التاليتَين:

      atest test-name -- --module-arg test-name:native-test-flag:"\"argument1 argument2\"" \
         --module-arg test-name:native-test-timeout:60000
      
  6. يمكنك إجراء الاختبار باستخدام حِزمة اختبار Trade Federation:

    make tradefed-all -j
    tradefed.sh run template/local_min --template:map test=hwui_unit_tests
    
  7. التثبيت والتشغيل يدويًا:

    1. ادفع الملف الثنائي للاختبار الذي تم إنشاؤه إلى جهازك:

       adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \
       /data/nativetest/hwui_unit_tests/hwui_unit_tests
      
    2. اطلق GTest ونفِّذ الاختبار من خلال استدعاء ملف الاختبار الثنائي على الجهاز:

       adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
      

      لمزيد من المعلومات عن تخصيص تنفيذ الاختبار، أضِف المَعلمة --help إلى ملف الاختبار الثنائي. لمزيد من المعلومات عن المَعلمات، يُرجى الرجوع إلى الدليل المتقدّم لاختبار GTest.