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

קודם כול, חשוב להבין את הטיפול באפשרויות ב-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, שמאפשר להעביר אפשרויות למפעיל הבדיקות של כל מודול על סמך סוג או מחלקה של המפעיל.

דוגמה:

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 כמקבל פוטנציאלי של האפשרויות.

העברת אפשרויות למחלקת בדיקה ב-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