כדי להגדיר את Tradefed באמצעות Eclipse, פועלים לפי השלבים הבאים:
יוצרים סביבת עבודה נפרדת לפיתוח של Trade Federation, ולא משתמשים שוב בסביבת עבודה שכבר נמצאת בשימוש לפיתוח של מכשירי Android.
אם צריך, אפשר להוריד את Eclipse IDE למפתחי Java מהכתובת: eclipse.org/downloads
יצירת פרויקטים
- מריצים את make פעם אחת משורת הפקודה. הפקודה הזו תיצור ספריות חיצוניות שתלויות בפרויקטים הבאים.
- מגדירים את משתנה classpath TRADEFED_ROOT ב-
Window > Preferences > Java > Build Path> Classpath Variables
ומפנים אותו לספריית השורש של מקור tradefed - מגדירים את משתנה הנתיב TRADEFED_ROOT בקובץ
Window > Preferences > General > Workspace > Linked Resources
ומפנים אותו לספריית השורש של מקור ה-tradefed משתמשים באשף
File > Import...-> General > Existing Projects into workspace"
כדי לייבא את פרויקטי ה-Java האלה בקוד פתוח בנתיב הבא:prebuilts/misc/common/ddmlib\* tools/loganalysis tools/loganalysis/tests tools/tradefederation/core tools/tradefederation/core/tests tools/tradefederation/contrib tools/tradefederation/core/remote platform_testing/libraries/health/runners/longevity/host platform_testing/libraries/annotations platform_testing/libraries/health/composers/host
אם רוצים לראות את קוד המקור של
ddmlib
, אפשר לצרף את קוד המקור מענף כלים לא ארוז, כמו /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java.אם רוצים גם לטעון את הפרויקטים של ערכת CTS, מייבאים את הפריטים הבאים:
test/suite_harness/common/util test/suite_harness/common/host-side/util test/suite_harness/common/host-side/tradefed
פורמט אוטומטי
הערה: הקבצים הנדרשים נמצאים ב-development/ide/eclipse
בעץ המקור המלא של הפלטפורמה. לכן תצטרכו לבדוק את ההסתעפות של הפלטפורמה, כמו main
, כדי לקבל את הקבצים האלה: /development/main/ide/eclipse/
שימוש בקובצי העדפות ב-Eclipse כדי להגדיר את הפורמט באופן אוטומטי לפי מדריך הסגנון של Android. כדי לעשות זאת ב-Studio:
- עוברים אל Window > Preferences > Java > Code Style.
- בקטע Formatter, מייבאים את הקובץ
android-formatting.xml
. - בקטע ארגון > ייבוא, מייבאים את הקובץ
android.importorder
.
הסרת רווחים לבנים בסוף
כדי לאלץ את Eclipse להסיר את כל הרווחים הלבנים שבסוף הטקסט:
- עוברים אל Window (חלון) > Preferences (העדפות) -> Java -> Editor (עריכה) -> Save Actions (פעולות שמירה).
- לאחר מכן, פעולות נוספות -> הגדרה -> קוד -> הכרטיסייה 'ארגון' -> פורמט.
- מסמנים את התיבה הסרת רווחים לבנים בסוף.
- לוחצים על אישור וסגירה.
בדיקת סגנון הקוד
כששולחים רשימת שינויים, המערכת מריצה באופן אוטומטי הוק לפני ההעלאה כדי לבדוק את פורמט הקוד: google-java-format
כך תוכלו לעצב את הקוד בהתאם לתקן הנפוץ.
ניפוי באגים ב-Eclipse
אם רוצים להריץ קוד של TF דרך מנתח באגים ב-Eclipse, מומלץ ליצור קודם בדיקת יחידה לקוד הרלוונטי, כי זו הדרך הפשוטה והמהירה ביותר לבדוק את הפונקציונליות.
כדי לנפות באגים בבדיקת יחידה של TF, פשוט לוחצים עליה לחיצה ימנית ובוחרים באפשרות Debug As > JUnit test.
כדי לנפות באגים בבדיקה פונקציונלית של TF, פועלים לפי ההוראות בקטע הקודם להרצת בדיקה פונקציונלית, אבל משתמשים בתפריט Run > Debug configurations.
כדי לנפות באגים בתוכנית TF עצמה, כשמריצים הגדרה כלשהי, פועלים לפי ההוראות בקטע הקודם להרצת בדיקה פונקציונלית, אבל בשלב 4 מספקים את הארגומנטים של שורת הפקודה להגדרה שרוצים להריץ. כדי לנפות באגים בהגדרה של 'instrument', עוברים לתפריט Run > Debug configuration ומגדירים את הכרטיסייה Arguments בהגדרת ניפוי הבאגים של Eclipse לערך -- package <package to run> instrument
.
ניפוי באגים מרחוק באמצעות Eclipse
כדי לנפות באגים מרחוק בסשן של Tradefed שהתחיל בשורת הפקודה tradefed.sh
:
- מפעילים את tradefed.sh עם דגל ניפוי הבאגים:
TF_DEBUG=1 tradefed.sh
- ממתינים עד שמופיעה ההודעה הבאה מ-JVM:
Listening for transport dt_socket at address: 10088
המשמעות היא ש-JVM מחכה שה-debugger יצטרף ליציאה10088
. - מצורפים באמצעות ניפוי באגים מרחוק ב-Eclipse מהתפריט הראשי: בוחרים באפשרות Run > Debug Configurations….
- בתיבת הדו-שיח הקופצת, בוחרים באפשרות Remote Java Application (אפליקציית Java מרוחקת) בתפריט הימני.
- לוחצים על הסמל New launch configuration בסרגל הפעולות.
- נותנים שם להגדרה ובוחרים בפרויקט tradefederation.
- מאכלסים את היציאה באמצעות הכתובת שצוינה קודם.
- עוברים לכרטיסייה Source ומוסיפים את הפרויקטים tradefederation ו-google-tradefed אל Source Lookup Path.
- לוחצים על ניפוי באגים כדי להתחיל את סשן ניפוי הבאגים.
מנתח הבאגים מצורף לתהליך ה-JVM שמאזין, ובמסוף שבו פועלת tradefed.sh
מוצגת ההנחיה tf>
.
כדי לעבור על הקוד במודל ניפוי באגים, מגדירים נקודת עצירה ב-Eclipse ומפעילים את הפקודה של Tradefed (כלומר run <test>
) במסוף. כדי לנפות באגים במהלך ההפעלה של TF, אפשר להגדיר קודם את נקודת העצירה ואז לחבר את מנתח הבאגים של Eclipse.
טיפ: כדי להשתמש ביציאה חלופית, מוסיפים את TF_DEBUG_PORT=nnn
לפקודה בשלב 1 למעלה. אפשר להשתמש בזה גם בסביבת הייצור אם יש באגים מסתוריים של סטאקים כדי לבדוק: משנים את הערך של suspend=y
ל-suspend=n
בקובץ tradefed.sh
ומתחילים עם דגל ניפוי הבאגים. ה-JVM לא ימתין שהכלי לניפוי באגים יתחבר אליו, אבל אפשר לעשות זאת בכל שלב כל עוד התהליך עדיין פועל.
ניפוי באגים מרחוק באמצעות JDB
כדי להשתמש ב-JDB של Java Debugger, מבצעים את השלבים הבאים, בדומה לאלו של Eclipse:
- מפעילים את
tradefed.sh
עם דגל ניפוי הבאגים:TF_DEBUG=1 tradefed.sh
- ממתינים עד שמופיעה ההנחיה מ-JVM:
Listening for transport dt_socket at address: 10088
. מחברים את
jdb
. לדוגמה, מ-croot מריצים:jdb -attach 10088 \ -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
ממתינים לחיבור ומתחילים לנפות באגים. הריצו את
man jdb
לקבלת עזרה נוספת.
בדיקת רמת הכיסוי של הקוד
- מתקינים את הפלאגין Eclemma.
- עוברים אל עזרה > התקנת תוכנה חדשה ומפנים את האשף אל: http://update.eclemma.org/
- לאחר ההתקנה, בוחרים באפשרות הבדיקה Coverage As > JUnit כדי להריץ בדיקה של כיסוי הקוד.