Chromium Chronicle מס' 14: הוספת בדיקות ל-Waterfall

פרק 14: מאת ז'אויאנג לי ב-MTV ואריק אלשייר ב-TOK (אוקטובר 2020)
פרקים קודמים

רוצה לזהות רגרסיות לתכונה החדשה שלך ב-Chrome? מוסיפים את הבדיקות אל Waterfall (ה-build והתשתית לבדיקה הרציפה של Chrome)!

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

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

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

האם כדאי להריץ את הבדיקות על כלי בנייה ציבורי או על כלי מובנה פנימי?

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

האם כדאי להריץ את הבדיקות בידיעת CI, במרכז הבקרה הראשי או בתור שמירה(CQ)?

  • ל-FYI CI נדרש מעקב עצמי, והוא משמש לשיפור בדיקות או לניסוי.
  • בדיקות ה-CI הראשיות נבדקות באופן קבוע על ידי שריפים.
  • CQ חוסמת שליחת CL בכשל אבל צורכת יותר משאבי מידע דיגיטלי. חבילה חדשה צריכה תמיד להתחיל מ-CI לפני שהיא תקודם ל-CQ.
  • אם אתם לא בטוחים, צוות EnngProd בפלטפורמה שלכם יכול לעזור לכם להחליט.

כבר יש לי חבילת בדיקות שפועלת ב-CI, איך אפשר להוסיף אותה ל-CQ? / מה קורה אם צריך כלי בנייה חדש?

איך מוסיפים חבילת בדיקות לכלי בנייה קיים

כדי להוסיף חבילת בדיקה לכלי לבניית צוות קיים, צריך להגדיר כמה קבצים ב-//src/testing/buildbot/:

  1. יוצרים מפתח ב-gn_isolate_map.pyl לחבילת הבדיקות החדשה עם תווית יעד בדיקה ופרטי סוג.
  2. מוסיפים את המפתח הזה לקבוצת בדיקה ב-test_suites.pyl. (תוכלו למצוא את המיפוי משם הכלי לבניית לקבוצות הבדיקה ב-builder ב-waterfalls.pyl.)

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. עוד כוונון עדין.

    • mixins.pyl מכיל ארגומנטים שאפשר להחיל על קבוצת בדיקות ברמות שונות של קבוצות.
    • הפונקציה variants.pyl עוזרת להריץ חבילה במספר מופעים עם ארגומנטים שונים.
  4. כדי ליצור מחדש קובצי תצורה מריצים את generate_buildbot_json.py.

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