העברת אפשרויות ומסננים לחבילה ולמודולים

קודם כל, חשוב להבין את הטיפול באפשרויות ב-Tradefed.

במאמר הגדרת חבילה מוסבר על שתי השכבות שקיימות במבנה החבילה:

  • החבילה ברמה העליונה
  • המודולים

בסביבת Tradefed שאינה חבילה, אין צורך לחשוב על זה. כל אפשרות עוברת להפעלה המלאה. בסוויטה, המודולים מבודדים מהסוויטה, ולכן לא כל האפשרויות זמינות ברמה שלהם.

העברת אפשרויות לחבילה ברמה העליונה

חבילת הבדיקות ברמה העליונה מתנהגת כמו הגדרה רגילה של Tradefed: ההגדרה המלאה, כולל מפעיל חבילת הבדיקות, מקבלת את כל האפשרויות כמו הגדרה של Tradefed שלא כוללת חבילת בדיקות.

העברת אפשרויות למודולים

כברירת מחדל, מודולים לא מקבלים אף אחת מהאפשרויות שמועברות לפקודה. כדי לקבל את האפשרויות דרך האפשרות module-arg, צריך לטרגט אותן באופן מפורש. ההפרדה הזו של אפשרויות המודולים מקלה על ניפוי הבאגים.

דוגמה:

cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>

cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true

התחביר מבטיח שהמודול המטורגט יקבל את האפשרות שצוינה.

יש דרכים נוספות להעביר אפשרויות למודולים, כמו test-arg, שמאפשרת להעביר אפשרויות ל-test runner של כל מודול על סמך הסוג או המחלקה של ה-runner.

דוגמה:

cts-tradefed run cts --test-arg <test-class>:<option-name>:<option-value>

cts-tradefed run cts --test-arg com.android.tradefed.testtype.JarHosttest:collect-tests-only:true

התחביר לא מכוון למודול מסוים, אלא לכל רכיבי ההרצה של המחלקה הנתונה. ‫test-arg מתייחס רק להטמעות של IRemoteTest (documentation, source code) או ITargetPreparer (documentation, source code) כמקבלים פוטנציאליים של האפשרויות.

העברת אפשרויות למחלקת בדיקה ב-Java ב-java_test_host

אם אתם מוסיפים @Option למחלקת בדיקות Java כחלק מיעד build של java_test_host, תצטרכו להשתמש באפשרות הבאה כדי להוסיף את האפשרות:

cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>

set-option בהקשר הזה היא האפשרות של מפעיל HostTest מתוך ערכת הכלים לבדיקה שעוטפת את מחלקות ה-Java כדי להפעיל אותן.

אם קובץ ה-JAR שלכם מכיל כמה מחלקות בדיקה, כברירת מחדל, כולן צריכות לכלול את האפשרות @option או להשתמש בתחביר הבא כדי לטרגט מחלקה אחת:

cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>

העברת מסננים לחבילה

כדי לסנן חלק מהבדיקות בחבילה, אנחנו משתמשים ב---include-filter וב---exclude-filter כדי לכלול או להחריג בכוח בדיקה או מודול מסוימים, בהתאמה. להחרגה יש עדיפות.

הפורמט הוא: [abi] <module-name> [test name]

דוגמאות:

--include-filter CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes