ปลั๊กอิน Android Gradle สามารถสร้างรายงานการครอบคลุมของโค้ดที่ติดตามเปอร์เซ็นต์ของโค้ดที่การทดสอบครอบคลุม หน้านี้อธิบายวิธีเปิดใช้การรายงาน Coverage และสร้างรายงาน
คุณสามารถสร้างรายงาน Coverage สำหรับการทดสอบแต่ละประเภท (Unit และ Instrumentation) สำหรับแต่ละ Variant นอกจากนี้ คุณยังสร้างรายงาน Coverage แบบรวมสำหรับการทดสอบประเภทต่างๆ โมดูล และตัวแปรบิลด์ได้ด้วย
เปิดใช้การครอบคลุมของโค้ด
คุณต้องเปิดใช้การครอบคลุมของโค้ดโดยตั้งค่า enableAndroidTestCoverage และ enableUnitTestCoverage เป็น true ในไฟล์บิลด์ระดับโมดูลสำหรับแต่ละ Variant ที่ต้องการรับรายงาน Coverage
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 โดยอัตโนมัติเมื่อคุณเปิดใช้ Coverage ในโมดูล อย่างไรก็ตาม หากต้องการใช้ Jacoco เวอร์ชันใดเวอร์ชันหนึ่ง คุณสามารถระบุเวอร์ชันนั้นในไฟล์บิลด์ระดับโมดูลได้
Kotlin
android { testCoverage { jacocoVersion = "JACOCO_VERSION" } }
ดึงดูด
android { testCoverage { jacocoVersion = 'JACOCO_VERSION' } }
สร้างรายงาน Coverage เฉพาะ Variant
หากต้องการสร้างรายงาน Coverage สำหรับการทดสอบ Unit หรือการทดสอบ Instrumented เท่านั้นสำหรับ Variant ที่เฉพาะเจาะจง ให้เรียกใช้งานที่เกี่ยวข้อง
| ประเภทการทดสอบ | คำสั่ง | ตำแหน่งที่รายงาน |
|---|---|---|
| การทดสอบ Unit | ./gradlew :module-name:createVariantNameUnitTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/test/variant/index.html |
| การทดสอบ Instrumented | ./gradlew :module-name:createVariantNameAndroidTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html |
สร้างรายงานการครอบคลุมของโค้ดแบบรวม
คุณสามารถสร้างรายงานการครอบคลุมของโค้ดแบบรวมได้โดยใช้ Gradle Task testAllSuites
และ testAllSuitesWithDependencies Task เหล่านี้จะสร้างรายงาน HTML รายการเดียวที่รวมข้อมูล Coverage จากการทดสอบประเภทต่างๆ (Unit และ Instrumentation) โมดูล และตัวแปรบิลด์ ซึ่งจะแสดงภาพรวมที่ครอบคลุมของการครอบคลุมของโค้ดของโปรเจ็กต์ในแดชบอร์ดเดียว
สิ่งที่ต้องมีก่อน
- ปลั๊กอิน Android Gradle เวอร์ชัน 9.5.0-alpha05 ขึ้นไป
- เปิดใช้การครอบคลุมของโค้ด
หากต้องการสร้างรายงานแบบรวม ให้เรียกใช้งานใดงานหนึ่งต่อไปนี้จากบรรทัดคำสั่ง
| ขอบเขต Coverage | คำสั่ง | คำอธิบาย | ตำแหน่งที่รายงาน |
|---|---|---|---|
| โมดูลปัจจุบัน | ./gradlew :module-name:testAllSuites --continue |
ทดสอบชุดโปรแกรมทดสอบทั้งหมด และสร้างรายงาน Coverage แบบรวมสำหรับโมดูลปัจจุบัน โดยผสานข้อมูลจากการทดสอบทุกประเภท | path-to-your-project/module-name/build/reports/testAllSuites/coverage-report/ |
| โมดูลปัจจุบันและทรัพยากร Dependency | ./gradlew :module-name:testAllSuitesWithDependencies --continue |
ทดสอบชุดโปรแกรมทดสอบทั้งหมด และสร้างรายงาน Coverage แบบรวมสำหรับโมดูลปัจจุบันและทรัพยากร Dependency ทั้งหมด Task นี้ใช้ได้กับโมดูลแอปและ โมดูลไลบรารีที่เปิดใช้การเผยแพร่ | path-to-your-project/module-name/build/reports/testAllSuitesWithDependencies/coverage-report/ |
หน้า Landing Page ของรายงาน HTML ที่สร้างขึ้นจะแสดงข้อมูลสรุประดับสูงของโมดูลทั้งหมด คุณสามารถเจาะลึกลงไปจากโมดูลไปยังแพ็กเกจ จากแพ็กเกจไปยังคลาส และจากคลาสไปยังไฟล์ซอร์ส คลิกไฟล์ใดก็ได้เพื่อดูโค้ดที่มีการไฮไลต์ Coverage ของบรรทัดและ Branch ดังนี้
- สีเขียว: บรรทัดที่ครอบคลุม
- สีแดง: บรรทัดที่ไม่ครอบคลุม
- สีเหลือง: ครอบคลุมบางส่วน (พลาดคำสั่งหรือ Branch บางรายการ)