הכללת בדיקות יחידה ופונקציונליות

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

  • איפה מוסיפים את הכיתות החדשות של בדיקת יחידה
  • הרצת בדיקות יחידה ב-Eclipse ומחוץ לסביבת הפיתוח המשולבת Eclipse IDE
  • איפה מוסיפים בדיקות פונקציונליות
  • הרצת הבדיקות הפונקציונליות
  • הרצה מקומית של חלק מהאימות לצורך שליחה מראש של TF

הוספה של בדיקות יחידה (unit testing)

בפרויקט קוד פתוח של Android (AOSP), מוסיפים את המחלקה לבדיקות יחידה ב: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

חשוב: אם תוסיפו את הכיתות החדשות של בדיקת יחידה למיקומים האלה, והם ירוצו אוטומטית בשליחה מראש, ללא צורך בהגדרות נוספות.

הרצת בדיקות יחידה (unit testing)

כל הבדיקות של יחידות AOSP והבדיקות הפונקציונליות של Federation (איחוד הסחר) נמצאות ב- ה tools/tradefederation/core/tests פרויקט.

בתוך ליקוי חמה, כדי להריץ בדיקה של יחידה בודדת, פשוט לוחצים לחיצה ימנית על הבדיקה בוחרים באפשרות הפעלה בשם > JUnit. כדי להריץ את כל בדיקות היחידה, מריצים את חבילת com.android.tradefed.UnitTests.

אפשר להתחיל את בדיקת היחידה גם משורת הפקודה במקור Merchantified. עץ אחרי הבנייה, למשל: tools/tradefederation/core/javatests/run_tradefed_tests.sh

אפשר להריץ בדיקות יחידות בנפרד, אבל צריך לבצע בדיקות פונקציונליות על ידי שימוש באיחוד האירופי עצמו, נדרש להם מכשיר Android. כל הפונקציונליות הבדיקות צריכות להתאים למוסכמות מתן השמות *FuncTest.

בדיקת התוצאות של בדיקות היחידה

כשמריצים את run_tradefed_tests.sh, בדיקות היחידה מפעילות את כל החלקים מסגרת הבדיקה, כולל כמה תנאי שגיאות. היא תודפס פלט מפורט למסוף, כולל דוחות קריסות.

הסיכום הסופי של התוצאות יציין אם נכשל או לא.

דוגמה לסיכום סופי במסוף:

12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]

כל הבדיקות עוברות בהצלחה, כך שאם מתרחש כשל בשינוי המקומי. צריך לוודא שהבדיקות תוקנו.

הוספת בדיקות פונקציונליות

  • אם הבדיקה הפונקציונליות כוללת מכשיר (משתמש בכל ממשק API של ITestDevice), הגדרת החבילה נמצאת ב-com.android.tradefed.DeviceFuncTests. אחרת, הגדרת החבילה ממוקמת ב-com.android.tradefed.FuncTests.

  • אם מתאים לכם לשלב את שיטות הבדיקה באחת ממחלקות המשנה הקיימות של החבילה, אני רוצה להוסיף אותו שם. אחרת, אתם יכולים להוסיף כיתה חדשה לכיתה הרלוונטית סוויטה.

  • בכל מקרה, על ידי הוספתו לחבילה, הבדיקה תרוץ אוטומטית בצינור עיבוד הנתונים של ה-CI עם בדיקות פונקציונליות אחרות.

הרצת בדיקות פונקציונליות

כדי להריץ בדיקה פונקציונליות מ-Eclipse:

  1. מוודאים שמכשיר מחובר למארח וש-adb ובמידת הצורך fastboot נמצאים ב-Path של Eclipse. הדרך הקלה ביותר לעשות זאת היא להפעיל ליקוי מהגדרה של מעטפת עם ה-Path המתאים.
  2. יוצרים אפליקציה ב-Java. הריצו את התצורה דרך Run > הפעל .
  3. מגדירים את הפרויקט בתור tradefed-tests ואת הכיתה הראשית בתור com.android.tradefed.command.CommandRunner.
  4. מריצים את m tradefed-all.
  5. בכרטיסייה ארגומנטים, מזינים את הארגומנטים הבאים בשורת הפקודה: host --class <full path of test class to run>
  6. לוחצים על הפעלה.

כדי להריץ בדיקות פונקציונליות מחוץ ל-Eclipse.

  1. בניית איגוד סחר.
  2. מחברים מכשיר Android למארח.
  3. הפעלה של tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. אפשר לבחור את המכשיר על ידי צירוף של המילה --serial <serial no> לשם מופיעה בפלט של adb devices.

הרצת בדיקות קדם-הגשה של TF מול שינויים מקומיים

אם רוצים להריץ את הקובץ מראש ב-TF, צריך להשתמש כך:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

הפעולה הזו תפעיל את כל הבדיקות בהגשה מראש של TF מול TF במבנה מקומי שלך יעזרו לכם לוודא שהשינוי לא גורם לכשלים בבדיקה.

בחינות ההכנה מראש ל-TF הן קבוצת-על של בדיקות היחידה שמתוארות למעלה, אבל זה איטי יותר להריץ אותן. מומלץ להריץ בדיקות יחידה במהלך הפיתוח אימות מהיר יותר והרצה של הבקשות מראש לפני העלאת ה-CL.