ปลั๊กอิน Android Gradle สามารถสร้างรายงานการครอบคลุมของโค้ดที่ติดตามเปอร์เซ็นต์ของโค้ดที่การทดสอบครอบคลุม หน้านี้อธิบายวิธีเปิดใช้การรายงานความครอบคลุมและสร้างรายงาน
คุณสามารถสร้างรายงานความครอบคลุมสำหรับการทดสอบแต่ละประเภท (หน่วยและเครื่องมือวัด) สำหรับตัวแปรแต่ละรายการ นอกจากนี้ คุณยังสร้างรายงานความครอบคลุมแบบรวมในประเภทการทดสอบ โมดูล และตัวแปรบิลด์ต่างๆ ได้ด้วย
เปิดใช้การครอบคลุมของโค้ด
ต้องเปิดใช้การครอบคลุมของโค้ดโดยตั้งค่า 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 { testCoverage { jacocoVersion = "JACOCO_VERSION" } }
ดึงดูด
android { testCoverage { jacocoVersion = 'JACOCO_VERSION' } }
สร้างรายงานความครอบคลุมเฉพาะตัวแปร
หากต้องการสร้างรายงานความครอบคลุมสำหรับการทดสอบหน่วยเท่านั้นหรือการทดสอบที่มีการวัดคุมเท่านั้นสำหรับตัวแปรที่เฉพาะเจาะจง ให้เรียกใช้งานที่เกี่ยวข้อง
| ประเภทการทดสอบ | คำสั่ง | ตำแหน่งที่รายงาน |
|---|---|---|
| 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 |
สร้างรายงานการครอบคลุมของโค้ดแบบรวม
คุณสร้างรายงานการครอบคลุมของโค้ดแบบรวมได้โดยใช้งาน Gradle testAllSuites และ testAllSuitesWithDependencies งานเหล่านี้จะสร้างรายงาน HTML รายการเดียวที่รวมข้อมูลความครอบคลุมจากการทดสอบประเภทต่างๆ (หน่วยและการวัดคุม) โมดูล และตัวแปรบิลด์ ซึ่งจะแสดงภาพรวมที่ครอบคลุมของการครอบคลุมของโค้ดในโปรเจ็กต์ของคุณในแดชบอร์ดเดียว
สิ่งที่ต้องมีก่อน
- ปลั๊กอิน Android Gradle 9.5.0-alpha05 ขึ้นไป
- เปิดใช้การครอบคลุมของโค้ด
หากต้องการสร้างรายงานแบบรวม ให้เรียกใช้งานอย่างใดอย่างหนึ่งต่อไปนี้จากบรรทัดคำสั่ง
| ขอบเขตความครอบคลุม | คำสั่ง | คำอธิบาย | ตำแหน่งที่รายงาน |
|---|---|---|---|
| ข้อบังคับปัจจุบัน | ./gradlew :module-name:testAllSuites --continue |
ทดสอบชุดโปรแกรมทดสอบทั้งหมด และสร้างรายงานความครอบคลุมแบบรวมสำหรับโมดูลปัจจุบัน โดยผสานรวมข้อมูลจากการทดสอบทุกประเภท | path-to-your-project/module-name/build/reports/testAllSuites/coverage-report/ |
| โมดูลปัจจุบันและทรัพยากร Dependency | ./gradlew :module-name:testAllSuitesWithDependencies --continue |
ทดสอบชุดโปรแกรมทดสอบทั้งหมด และสร้างรายงานความครอบคลุมแบบรวมสำหรับโมดูลปัจจุบันและการขึ้นต่อกันทั้งหมด งานนี้ใช้ได้กับโมดูลแอปและโมดูลไลบรารีที่เปิดใช้การเผยแพร่ | path-to-your-project/module-name/build/reports/testAllSuitesWithDependencies/coverage-report/ |
หน้า Landing Page ของรายงาน HTML ที่สร้างขึ้นจะแสดงสรุประดับสูงของโมดูลทั้งหมด คุณสามารถเจาะลึกจากโมดูลไปยังแพ็กเกจ จากแพ็กเกจไปยังคลาส และจากคลาสไปยังไฟล์ต้นฉบับได้ คลิกไฟล์ใดก็ได้เพื่อดูโค้ดที่มีการไฮไลต์ความครอบคลุมของบรรทัดและสาขา
- สีเขียว: เส้นที่ครอบคลุม
- สีแดง: บรรทัดที่ไม่ได้ครอบคลุม
- สีเหลือง: ครอบคลุมบางส่วน (คำสั่งหรือสาขาบางส่วนหายไป)
ใช้การครอบคลุมของโค้ดในอุปกรณ์สำหรับการทดสอบการวัดคุม
โดยค่าเริ่มต้น AGP จะวัดความครอบคลุมของการทดสอบการวัดคุมโดยการวัดคุมคลาสของแอปด้วย JaCoCo เมื่อสร้างแอป ตั้งแต่ AGP 9.6.0-alpha01 เป็นต้นไป คุณสามารถใช้การวัดคุมในอุปกรณ์แทนได้ ซึ่งจะวัดคุมคลาสของแอปในอุปกรณ์ทดสอบขณะที่การทดสอบทำงาน ดูข้อมูลเพิ่มเติมได้ที่ดูรายงานการครอบคลุมของโค้ด (ที่มี Agent ในอุปกรณ์)