דילוג על מבחנים עם מייבן

1. הקדמה

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

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

במדריך מהיר זה נחקור את כל הפקודות והאפשרויות שניתן לדלג על בדיקות באמצעות Maven.

2. מחזור חיים של Maven

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

  1. התעלם ממבחנים
  2. לערוך מבחנים
  3. הפעל מבחנים

בדוגמאות שלנו נשתמש ב- חֲבִילָה שלב, הכולל הידור והפעלת המבחנים. האפשרויות שנחקרו במהלך הדרכה זו שייכות לתוסף Maven Surefire.

3. שימוש בדגלי שורת פקודה

3.1. דילוג על אוסף המבחנים

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

@Test הציבור בטל thisDoesntCompile () {baeldung; }

כאשר אנו מריצים את פקודת שורת הפקודה:

חבילת mvn

נקבל שגיאה:

[מידע] ------------------------------------------------------- -------------- [שגיאה] שגיאת אוסף: [INFO] --------------------------- ---------------------------------- [ERROR] / משתמשים / baeldung / skip-tests / src / test / java / com / antmordel / skiptests / PowServiceTest.java: [11,9] לא משפט [INFO] שגיאה אחת

לכן, בואו נחקור כיצד לדלג על שלב האוסף למקורות הבדיקה. ב- Maven נוכל להשתמש ב- maven.test.skip דֶגֶל:

חבילת mvn -Dmaven.test.skip

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

3.2. דילוג על ביצוע המבחן

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

@Test הציבור בטל thisTestFails () {fail ("זהו מקרה בדיקה כושל"); }

מכיוון שכללנו את ההצהרה לְהִכָּשֵׁל(), אם אנחנו מנהלים את חֲבִילָה שלב, הבנייה תיכשל עם השגיאה:

[ERROR] כישלונות: [ERROR] PowServiceTest.thisTestFails: 16 זהו מקרה בדיקה שנכשל [INFO] [ERROR] בדיקות: 2, כישלונות: 1, שגיאות: 0, דילג על: 0

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

חבילת mvn -DskipTests

ושלב החבילה יצליח. כמו כן, ב- Maven יש תוסף ייעודי להפעלת מבחני אינטגרציה הנקראים תוסף mails failsafe. ה -דיקטסטים ידלג על ביצוע שני בדיקות היחידה (בטוחה) וגם מבחני האינטגרציה (כשל). כדי פשוט לדלג על מבחני האינטגרציה, נוכל לעבור את ה- -DskipITs נכס מערכת.

לבסוף, ראוי להזכיר כי הדגל שעבר מיושן -Dmaven.test.skip.exec גם ירכיב את שיעורי המבחן אך לא יריץ אותם.

4. שימוש בתצורת Maven

במקרה שעלינו לא לכלול את הידור או הפעלת הבדיקות לתקופה ארוכה יותר, אנו יכולים לשנות את ה- pom.xml קובץ על מנת לכלול את התצורה הנכונה.

4.1. דילוג על אוסף המבחנים

כפי שעשינו בסעיף הקודם, בואו נבדוק כיצד אנו יכולים להימנע מהידור את תיקיית הבדיקה. במקרה זה נשתמש ב- pom.xml קוֹבֶץ. בואו נוסיף את המאפיין הבא:

 נָכוֹן 

זכור זאת אנו יכולים לעקוף ערך זה על ידי הוספת הדגל הנגדי בשורת הפקודה:

mvn -Dmaven.test.skip = חבילה כוזבת

4.2. דילוג על ביצוע המבחן

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

 נכון org.apache.maven.plugins maven-surefire-plugin 2.22.1 $ {tests.skip} 

הנכס Maven tests.skip הוא מאפיין מותאם אישית שהגדרנו בעבר. לכן, אנו יכולים לעקוף אותו אם אנו רוצים לבצע את הבדיקות:

mvn -Dtests.skip = חבילה כוזבת

4. מסקנה

במדריך מהיר זה בדקנו את כל החלופות שמייבן מציעה על מנת לדלג על הידור ו / או הפעלת הבדיקות.

עברנו על אפשרויות שורת הפקודה Maven ואפשרויות התצורה של Maven.