פלאגין של 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' } }
יצירת דוחות כיסוי ספציפיים לווריאנט
כדי ליצור דוחות כיסוי רק לבדיקות יחידה או רק לבדיקות עם מכשור לגרסה ספציפית, מריצים את המשימות המתאימות.
| סוג הבדיקה | פקודה | דיווח על מיקום |
|---|---|---|
| בדיקות יחידה | ./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 |
יצירת דוחות מאוחדים של רמת הכיסוי של הקוד
אפשר ליצור דוחות מאוחדים של רמת הכיסוי של הקוד באמצעות משימות Gradle testAllSuites ו-testAllSuitesWithDependencies. המשימות האלה ייצרו דוח HTML יחיד שמרכז את נתוני הכיסוי מסוגים שונים של בדיקות (יחידה ומכשיר), מודולים וגרסאות build. כך תוכלו לקבל תצוגה מקיפה של רמת הכיסוי של הקוד בפרויקט בלוח בקרה אחד.
דרישות מוקדמות
- פלאגין של Android Gradle 9.5.0-alpha05 ואילך
- הפעלה של רמת הכיסוי של הקוד
כדי ליצור דוח מאוחד, מריצים אחת מהמשימות הבאות משורת הפקודה:
| היקף הכיסוי | פקודה | תיאור | דיווח על מיקום |
|---|---|---|---|
| המודול הנוכחי | ./gradlew :module-name:testAllSuites |
מריץ את כל חבילות הבדיקה ויוצר דוח כיסוי מאוחד למודול הנוכחי, תוך מיזוג נתונים מכל סוגי הבדיקות. | path-to-your-project/module-name/build/reports/code_coverage_html_report/ |
| המודול הנוכחי ויחסי התלות | ./gradlew :module-name:testAllSuitesWithDependencies |
בודק את כל חבילות הבדיקה ויוצר דוח כיסוי מאוחד למודול הנוכחי ולכל התלויות שלו. המשימה הזו זמינה למודולים של אפליקציות ולמודולים של ספריות עם פרסום מופעל. | path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/ |
בדף הנחיתה של דוח ה-HTML שנוצר מוצג סיכום כללי של כל המודולים. אפשר להעמיק מהמודול לחבילה, מהחבילה לכיתה ומהכיתה לקובץ המקור. לוחצים על קובץ כלשהו כדי לראות את הקוד עם הדגשה של כיסוי השורות והענפים:
- ירוק: קווים מכוסים.
- אדום: שורות שלא נכללות בכיסוי.
- צהוב: כיסוי חלקי (חלק מההוראות או מהענפים לא נכללו).