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

ปลั๊กอิน 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 รายการเดียวที่รวมข้อมูลความครอบคลุมจากการทดสอบประเภทต่างๆ (หน่วยและการวัดคุม) โมดูล และตัวแปรบิลด์ ซึ่งจะแสดงภาพรวมที่ครอบคลุมของการครอบคลุมของโค้ดในโปรเจ็กต์ของคุณในแดชบอร์ดเดียว

สิ่งที่ต้องมีก่อน

หากต้องการสร้างรายงานแบบรวม ให้เรียกใช้งานอย่างใดอย่างหนึ่งต่อไปนี้จากบรรทัดคำสั่ง

ขอบเขตความครอบคลุม คำสั่ง คำอธิบาย ตำแหน่งที่รายงาน
ข้อบังคับปัจจุบัน ./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 ในอุปกรณ์)