ดูรายงานการครอบคลุมของโค้ด

ปลั๊กอิน 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 ที่สร้างขึ้นจะแสดงสรุประดับสูงของโมดูลทั้งหมด คุณสามารถเจาะลึกจากโมดูลไปยังแพ็กเกจ จากแพ็กเกจไปยังคลาส และจากคลาสไปยังไฟล์ต้นฉบับ คลิกไฟล์ใดก็ได้เพื่อดูโค้ดที่มีการไฮไลต์ความครอบคลุมของบรรทัดและสาขา ดังนี้

  • สีเขียว: บรรทัดที่ครอบคลุม
  • สีแดง: บรรทัดที่ไม่ครอบคลุม
  • สีเหลือง: ครอบคลุมบางส่วน (พลาดคำสั่งหรือสาขาบางรายการ)