צפייה בדוחות של רמת הכיסוי של הקוד

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

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

הפעלת רמת הכיסוי של הקוד

כדי להפעיל את רמת הכיסוי של הקוד, צריך להגדיר את enableAndroidTestCoverage ואת enableUnitTestCoverage ל-true בקובצי ה-build ברמת המודול לכל וריאנט שרוצים לקבל לגביו דוחות כיסוי:

Kotlin

android {
    // ...
    buildTypes {
        debug {
            // Enable coverage for unit tests
            enableUnitTestCoverage = true
            // Enable coverage for instrumentation tests
            enableAndroidTestCoverage = true
        }
    }
}

Groovy

android {
    // ...
    buildTypes {
        debug {
            // Enable coverage for unit tests
            enableUnitTestCoverage true
            // Enable coverage for instrumentation tests
            enableAndroidTestCoverage true
        }
    }
}

שינוי גרסת Jacoco (אופציונלי)

‫AGP מפעיל את Jacoco באופן אוטומטי כשמפעילים את הכיסוי במודולים. עם זאת, אם אתם צריכים להשתמש בגרסה ספציפית של Jacoco, אתם יכולים לציין אותה בקובץ ה-build ברמת המודול:

Kotlin

android {
    jacoco {
        version = "JACOCO_VERSION"
    }
}

Groovy

android {
    jacoco {
        version = 'JACOCO_VERSION'
    }
}

יצירת דוחות כיסוי ספציפיים לגרסאות

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

סוג הבדיקה פקודה דיווח על מיקום
בדיקות יחידה ./gradlew :module-name:createVariantNameUnitTestCoverageReport path-to-your-project/module-name/build/reports/coverage/test/variant/index.html
בדיקות אינסטרומנטציה ./gradlew :module-name:createVariantNameAndroidTestCoverageReport path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html

יצירת דוחות מאוחדים של רמת הכיסוי של הקוד

אתם יכולים ליצור דוחות מאוחדים של רמת הכיסוי של הקוד באמצעות המשימות createCoverageReport ו-createAggregatedCoverageReport של Gradle. אפשר להשתמש במשימות האלה כדי ליצור דוח HTML יחיד שמרכז את נתוני הכיסוי מסוגים שונים של בדיקות (יחידה ואינסטרומנטציה), מודולים ווריאנטים של build. כך תוכלו לקבל תצוגה מקיפה של רמת הכיסוי של הקוד של הפרויקט בלוח בקרה אחד.

דרישות מוקדמות

  • פלאגין של Android Gradle מגרסה ‎9.2.0-alpha07 ואילך

כדי ליצור דוח מאוחד, מריצים אחת מהמשימות הבאות משורת הפקודה:

היקף הכיסוי פקודה תיאור דיווח על מיקום
המודול הנוכחי ./gradlew :module-name:createCoverageReport יוצר דוח כיסוי מאוחד למודול הנוכחי, ומשלב נתונים מכל סוגי הבדיקות. path-to-your-project/module-name/build/reports/code_coverage_html_report/
המודול הנוכחי ויחסי התלות ./gradlew :module-name:createAggregatedCoverageReport יוצר דוח כיסוי מאוחד עבור המודול הנוכחי וכל יחסי התלות שלו. המשימה הזו זמינה למודולים של אפליקציות ולמודולים של ספריות עם פרסום מופעל. path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/

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

  • ירוק: קווים מכוסים.
  • אדום: שורות שלא נבדקו.
  • צהוב: כיסוי חלקי (חלק מההוראות או מהענפים לא נכללו).