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

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

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

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

ขอบเขต 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 บางรายการ)