כלי ניתוח סטטי של Java ב- Eclipse ו- IntelliJ IDEA

1. סקירה כללית

במבוא שלנו ל- FindBugs, בחנו את הפונקציונליות של FindBugs ככלי ניתוח סטטי וכיצד ניתן לשלב אותו ישירות ב- IDEs כמו Eclipse ו- IntelliJ Idea.

במאמר זה נבחן כמה מכלי ניתוח סטטי חלופיים עבור Java - וכיצד הם משתלבים עם Eclipse ו- IntelliJ IDEA.

2. PMD

נתחיל עם PMD.

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

2.1. שילוב עם ליקוי חמה

ניתן להתקין את תוסף PMD ישירות מ- Eclipse Marketplace. ניתן להוריד את התוסף גם כאן באופן ידני. לאחר ההתקנה, אנו יכולים להריץ את בדיקת PMD ישירות מה- IDE עצמו:

ראוי לציין שנוכל להריץ PMD ברמת הפרויקט או ברמת הכיתה האישית.

התוצאות מוצגות להלן - עם צבעים שונים עבור רמות שונות של הממצא שנע בין "אזהרה" ל"חסם "בסדר הגובר של חומרה:

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

אפשר גם לשנות את התצורה של סריקת PMD - אנו יכולים לעשות זאת בתפריט, תחת חלון -> העדפות -> PMD להפעלת דף התצורה. כאן נוכל להגדיר פרמטרי סריקה, קביעת כללים, הגדרות תצוגת תוצאות וכו '.

אם עלינו להשבית כמה כללים ספציפיים לפרויקט - נוכל פשוט להסיר אותם מהסריקה:

2.2. שילוב עם IntelliJ

כמובן של- IntelliJ יש תוסף PMD דומה - אותו ניתן להוריד ולהתקין מחנות התוספים JetBrains.

אנו יכולים להפעיל באופן דומה את התוסף ישירות ב- IDE - על ידי לחיצה ימנית על המקור הדרוש לנו לסריקה ובחירת סריקת PMD מתפריט ההקשר:

התוצאות מוצגות באופן מיידי, אך שלא כמו ב- Eclipse, אם ננסה לפתוח את התיאור הוא יפתח דפדפן עם דף אינטרנט ציבורי למציאת מידע:

אנו יכולים לקבוע את התנהגות התוסף PMD מדף ההגדרות, על ידי מעבר לקובץ -> הגדרות -> הגדרות אחרות -> PMD כדי להציג את דף התצורה. מדף ההגדרות נוכל להגדיר את קבוצת הכללים על ידי טעינת קבוצת כללים מותאמת אישית עם כללי הבדיקה שלנו.

3. JaCoCo

עוברים הלאה - JaCoCo הוא כלי כיסוי בדיקה - המשמש לעקוב אחר כיסוי בדיקות היחידות בבסיס הקוד. במילים פשוטות, הכלי מחשב את הכיסוי באמצעות מספר אסטרטגיות למשל: קווים, מחלקה, שיטות וכו '.

3.1. שילוב עם ליקוי חמה

ניתן להתקין את JaCoCo ישירות מהשוק. קישור להתקנה מתארח גם באתר הרשמי הזמין כאן.

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

השיטה שלנו מחלקת שני פרמטרים שלמים מסופקים ומחזירה את התוצאה. אם הפרמטר השני הוא אפס הוא יחזיר ערך מקסימלי לסוג הנתונים השלם.

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

במקרה זה, אנו יכולים לראות כי שורה 6 היא בצבע צהוב. רק ענף אחד של מצב ה'אם 'נבדק ורץ במבחן הפשוט שלנו. לכן זה לא נבדק לחלוטין ומסומן בצהוב.

יתר על כן, לקו 7 יש צבע ירוק - זה אומר שהוא נבדק במלואו. לבסוף, שורה 9 מודגשת בצבע אדום, מה שאומר שקו זה כלל לא נבדק על ידי מבחני היחידות שלנו.

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

3.2. שילוב עם IntelliJ IDEA

JaCoCo מקובץ כברירת מחדל עם הפצת IntelliJ IDEA העדכנית ביותר, כך שאין צורך להתקין את התוסף בנפרד.

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

בדומה ל- Eclipse, JaCoCo מציג תוצאות בעזרת ערכות צבע שונות לכיסוי.

אנו יכולים לראות את סיכום כיסוי המבחן שבו הוא מציג כמה מהקוד מכוסה במבחני יחידות ברמת הכיתה וברמת החבילה.

4. קוברטורה

לבסוף, כדאי להזכיר את Cobertura - זה משמש באופן דומה כדי לעקוב אחר כיסוי בדיקות היחידות בבסיס הקוד.

הגרסה האחרונה של Eclipse אינה תומכת בתוסף Cobertura בזמן כתיבת שורות אלה; התוסף אכן עובד עם גרסאות Eclipse קודמות.

באופן דומה, ל- IntelliJ IDEA אין תוסף רשמי שיכול לבצע את הכיסוי של Cobertura.

5. מסקנה

בדקנו את האינטגרציה עם Eclipse ו- IntelliJ IDEA לשלושה כלי ניתוח סטטי בשימוש נרחב. FindBug סוקר בהקדמה קודמת ל- FindBugs.

את קוד המקור של הדרכה זו ניתן למצוא בפרויקט GitHub - זהו פרויקט מבוסס Maven, כך שיהיה קל לייבא ולהפעיל אותו כפי שהוא.


$config[zx-auto] not found$config[zx-overlay] not found