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

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

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

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

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

Kotlin

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

מגניב

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

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

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

Kotlin

android {
    testCoverage {
        jacocoVersion = "JACOCO_VERSION"
    }
}

מגניב

android {
    testCoverage {
        jacocoVersion = 'JACOCO_VERSION'
    }
}

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

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

סוג הבדיקה פקודה דיווח על מיקום
בדיקות יחידה (unit testing) ./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

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

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

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

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

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

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

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