בנה צנצנת עם מייבן והתעלם מתוצאות הבדיקה

1. הקדמה

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

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

2. בניית הפרויקט

בואו ניצור פרויקט פשוט שבו אנו כוללים גם מקרה מבחן קטן:

class class TestFail {@Test public void whenMessageAssigned_thenItIsNotNull () {String message = "שלום שם"; assertNotNull (הודעה); }}

בואו לבנות קובץ צנצנת על ידי ביצוע הפקודה הבאה של Maven:

חבילת mvn

זה יביא לגיבוש המקורות וליצור maven-0.0.1-SNAPSHOT.jar הקובץ תחת ספריית / target.

עכשיו, בואו ונשתנה מעט את המבחן, כך שהמבחן יתחיל להיכשל.

@Test ציבורי בטל כאשר MessageAssigned_thenItIsNotNull () {הודעת מחרוזת = null; assertNotNull (הודעה); }

הפעם, כאשר אנו מנסים להפעיל את חבילת mvn שוב פקודה, הבניין נכשל וקובץ maven-0.0.1-SNAPSHOT.jar לא נוצר.

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

אז איך נוכל לפתור את הבעיה הזו?

3. ויכוחים של מייבן

ל- Maven יש טיעונים משלה להתמודד עם נושא זה:

  • -Dmaven.test.failure.ignore = נכוןמתעלם מכל תקלה המתרחשת במהלך ביצוע הבדיקה
  • -Dmaven.test.skip = נכון לא היה מרכיב את המבחנים
  • -fn, פיי לעולם לא נכשל במבנה ללא קשר לתוצאות הבדיקה

בואו ננהל את mvn חבילה -Dmaven.test.skip = נכון פקודה ורואה את התוצאות:

[INFO] מדלגים על הבדיקות. [INFO] הצלחה בונה

המשמעות היא שהפרויקט ייבנה ללא עריכת המבחנים.

עכשיו בואו ננהל את mvn חבילה -Dmaven.test.failure.ignore = נכון פקודה:

[INFO] הפעלת testfail.TestFail [ERROR] whenMessageAssigned_thenItIsNotNull java.lang.AssertionError [INFO] BUILD SUCCES

מבחן היחידה שלנו נכשל בטענה אך הבנייה מצליחה.

לבסוף, בואו נבדוק את -fn, פיי אפשרויות. שניהם, חבילה -fn ו חבילה -פא פקודות לבנות את קַנקַן להגיש ולהפיק את בנה הצלחה תפוקה ללא קשר whenMessageAssigned_thenItIsNotNull () כישלון במבחן.

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

4. תוסף Maven Surefire

דרך נוחה נוספת להשיג את מטרתנו היא להשתמש בתוסף Surefire של Maven.

לסקירה מורחבת של תוסף Surefire, עיין במאמר זה.

כדי להתעלם מבדיקות נכשלות אנחנו יכולים פשוט להגדיר את testFailureIgnore נכס ל נָכוֹן:

 תוסף maven-surefire-$ $ {maven.surefire.version} TestFail.java נכון 

עכשיו, בואו נראה את הפלט של ה- חֲבִילָה פקודה:

[INFO] T E S T S [INFO] הפעלת testfail.TestFail [ERROR] הפעלת בדיקות: 1, כשלים: 1, שגיאות: 0, דילג על: 0, <<< תקלה! - ב- testfail.TestFail

מפלט הבדיקות הפועלות אנו יכולים לראות את כישלון במבחן הכיתה נכשלת. אך כשמסתכלים רחוק יותר אנו רואים שההודעה BUILD SUCCESS נמצאת שם וקובץ maven-0.0.1-SNAPSHOT.jar.

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

נָכוֹן

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

5. מסקנה

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

כרגיל, הקוד השלם למאמר זה זמין בפרויקט GitHub.


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