מבחני מכשור

ראשית לקרוא מבחן היישום שלך על developer.android.com. שימו לב שיש כמה הבדלים באופן שבו משתמשים בבדיקות מכשור בבדיקות פלטפורמה.

לסיכום, בדיקת מכשור מספקת סביבת ביצוע בדיקה מיוחדת כפי שהושק באמצעות am instrument פקוד, שבו תהליך היישום הממוקד מופעל מחדש ועל מאותחל עם קשר אפליקציה בסיסי, וכן חוט מכשור מופעל בתוך תהליך היישום VM. קוד הבדיקה שלך מתחיל ביצוע על חוט המכשור הזה מסופק עם Instrumentation למשל המספק גישה בהקשר הבקשה APIs כדי לתפעל את תהליך היישום נבדק.

מושגי מפתח

  • חייב להיות מוכרז מכשור בחבילת יישומים, עם <instrumentation> תג מקוננים תחת <manifest> התג של במניפסט חבילת יישום.
  • במניפסט חבילת יישום עשוי להכיל מספר טכני <instrumentation> תגים, אבל זה כבר לא נפוץ בצורה זו.
  • כל <instrumentation> חייב לכלול:
    • android:name מאפיין: זה צריך להיות השם של תת של Instrumentation שנכלל יישום המבחן, שהוא בדרך כלל מריץ הבדיקה הנמצא בשימוש, למשל: android.support.test.runner.AndroidJUnitRunner
    • android:targetPackage תכונה חייבת להיות מוגדרת. יש להגדיר את ערכה לחבילת היישומים הנבדקת.

סיכום שלבים

  1. להלן יעדים נפוצים לבדיקות הרמטיות נגד שירותי מסגרת:

    frameworks/base/core/tests/coretests
    frameworks/base/services/tests/servicestests
    

    אם אתה מוסיף מודול מכשור חדש לרכיב שלך, ראה

  2. בעקבות האמנה הקיימת אם אתה מוסיף בדיקות לאחד מהמיקומים למעלה. אם אתם מגדירים את מודול בדיקה חדש, בצע את ההתקנה על AndroidManifest.xml ו Android.mk באחד המקומות הנ"ל

  3. ראה מסגרות / בסיס / ליבה / בדיקות / coretests / עבור דוגמה. שימו לב לשורות אלה להתקין אפליקציות נוספות:

    <option name="test-file-name" value="FrameworksCoreTests.apk" />
    <option name="test-file-name" value="BstatsTestApp.apk" />
    
  4. אל תשכחו לסמן הבדיקה שלך כמו @SmallTest , @MediumTest או @LargeTest

  5. בנה את מודול הבדיקה עם m, למשל:

    m FrameworksCoreTests
    
  6. הפעל את הבדיקות:

    m tradefed-all
    tradefed.sh run template/local_min --template:map test=FrameworksCoreTests
    
  7. אם אינך משתמש ב- Tradefed, התקן והפעל את הבדיקות באופן ידני:

    1. התקן את ה- APK שנוצר:
    adb install -r ${OUT}/data/app/FrameworksCoreTests/FrameworksCoreTests.apk
    

    טיפ: אתה משתמש adb shell pm list instrumentation כדי למצוא את כלי המדידה בתוך APK פשוט מותקן

    1. הפעל את הבדיקות עם אפשרויות שונות:

      1. כל הבדיקות ב- apk

        adb shell am instrument -w com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        
      2. כל הבדיקות תחת חבילת Java ספציפית

        adb shell am instrument -w -e package android.animation \
          com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        
      3. כל המבחנים תחת כיתה מסוימת

        adb shell am instrument -w -e class \
          android.animation.AnimatorSetEventsTest \
          com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        
      4. שיטת בדיקה ספציפית

        adb shell am instrument -w -e class \
          android.animation.AnimatorSetEventsTest#testCancel \
          com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        

המבחן שלך יכול להפוך טענה מפורשת על לעבור או להיכשל באמצעות JUnit APIs; בנוסף, כל חריג שלא נתפס יגרום גם לכשל תפקודי.

לפלוט מדדי ביצועים, קוד הבדיקה שלך יכול לקרוא Instrumentation#sendStatus לשלוח רשימה של זוגות מפתח-ערך. חשוב לציין כי:

  1. מדדים יכולים להיות מספר שלם או נקודה צפה
  2. כל ערכים לא מספריים יימחקו
  3. APK הבדיקה שלך יכול להיות מבחנים פונקציונאליים או בדיקות מדדים, אולם ערבוב שניהם אינו נתמך כרגע