ปลั๊กอิน Android Gradle สามารถสร้างรายงานการครอบคลุมของโค้ดที่ติดตามเปอร์เซ็นต์ของโค้ดที่การทดสอบครอบคลุม หน้านี้จะอธิบายวิธีเปิดใช้การรายงานความครอบคลุมและสร้างรายงาน
คุณสามารถสร้างรายงานความครอบคลุมสำหรับการทดสอบแต่ละประเภท (Unit Test และการทดสอบแบบมีเครื่องควบคุม) สำหรับตัวแปรแต่ละรายการ นอกจากนี้ คุณยังสร้างรายงานความครอบคลุมแบบรวมสำหรับการทดสอบประเภทต่างๆ โมดูล และตัวแปรบิลด์ได้ด้วย
เปิดใช้การครอบคลุมของโค้ด
คุณต้องเปิดใช้การครอบคลุมของโค้ดโดยตั้งค่า enableAndroidTestCoverage และ enableUnitTestCoverage เป็น true ในไฟล์บิลด์ระดับโมดูลสำหรับตัวแปรแต่ละรายการที่ต้องการรับรายงานการครอบคลุม
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 เวอร์ชันที่เฉพาะเจาะจง คุณสามารถระบุเวอร์ชันนั้นในไฟล์บิลด์ระดับโมดูลได้
Kotlin
android { jacoco { version = "JACOCO_VERSION" } }
ดึงดูด
android { jacoco { version = 'JACOCO_VERSION' } }
สร้างรายงานความครอบคลุมที่เฉพาะเจาะจงกับตัวแปร
หากต้องการสร้างรายงานความครอบคลุมสำหรับการทดสอบ Unit Test หรือการทดสอบแบบมีเครื่องควบคุมเท่านั้นสำหรับตัวแปรที่เฉพาะเจาะจง ให้เรียกใช้ Task ที่เกี่ยวข้อง
| ประเภทการทดสอบ | คำสั่ง | ตำแหน่งที่รายงาน |
|---|---|---|
| Unit Test | ./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 |
สร้างรายงานการครอบคลุมของโค้ดแบบรวม
คุณสามารถสร้างรายงานการครอบคลุมของโค้ดแบบรวมได้โดยใช้ Task createCoverageReport และ createAggregatedCoverageReport ของ Gradle คุณสามารถใช้ Task เหล่านี้เพื่อสร้างรายงาน HTML รายการเดียวที่รวมข้อมูลความครอบคลุมจากการทดสอบประเภทต่างๆ (Unit Test และการทดสอบแบบมีเครื่องควบคุม) โมดูล และตัวแปรบิลด์
ซึ่งจะแสดงภาพรวมการครอบคลุมของโค้ดของโปรเจ็กต์ในแดชบอร์ดเดียว
สิ่งที่ต้องมีก่อน
- ปลั๊กอิน Android Gradle 9.2.0-alpha07 ขึ้นไป
หากต้องการสร้างรายงานแบบรวม ให้เรียกใช้ Task ใด Task หนึ่งต่อไปนี้จากบรรทัดคำสั่ง
| ขอบเขตความครอบคลุม | คำสั่ง | คำอธิบาย | ตำแหน่งที่รายงาน |
|---|---|---|---|
| โมดูลปัจจุบัน | ./gradlew :module-name:createCoverageReport |
สร้างรายงานความครอบคลุมแบบรวมสำหรับโมดูลปัจจุบัน โดยผสานข้อมูลจากการทดสอบทุกประเภท | path-to-your-project/module-name/build/reports/code_coverage_html_report/ |
| โมดูลปัจจุบันและการอ้างอิง | ./gradlew :module-name:createAggregatedCoverageReport |
สร้างรายงานความครอบคลุมแบบรวมสำหรับโมดูลปัจจุบันและทรัพยากร Dependency ทั้งหมด Task นี้ใช้ได้กับโมดูลแอปและ โมดูลไลบรารีที่เปิดใช้การเผยแพร่ | path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/ |
หน้า Landing Page ของรายงาน HTML ที่สร้างขึ้นจะแสดงสรุประดับสูงของโมดูลทั้งหมด คุณสามารถเจาะลึกจากโมดูลไปยังแพ็กเกจ จากแพ็กเกจไปยังคลาส และจากคลาสไปยังไฟล์ต้นฉบับ คลิกไฟล์ใดก็ได้เพื่อดูโค้ดที่มีการไฮไลต์ความครอบคลุมของบรรทัดและสาขา ดังนี้
- สีเขียว: บรรทัดที่ครอบคลุม
- สีแดง: บรรทัดที่ไม่ครอบคลุม
- สีเหลือง: ครอบคลุมบางส่วน (พลาดคำสั่งหรือสาขาบางรายการ)