The Chromium Chronicle #18: การครอบคลุมของโค้ด Chromium

ตอนที่ 18: โดย Veenita Joshi และ Prakhar Asthana ใน Mountain View, CA (กุมภาพันธ์ 2021)
ตอนก่อนหน้า

การครอบคลุมของการทดสอบจะวัดจำนวนการเรียกใช้ซอร์สโค้ดเมื่อชุดทดสอบหนึ่งๆ ทำงาน การสร้างข้อมูลการครอบคลุมมี 3 ขั้นตอนสำคัญ ได้แก่ การคอมไพล์การวัดคุม การรวบรวมข้อมูลจากการทำการทดสอบที่มีการวัดคุม และหลังการประมวลผลข้อมูล ทีมดูแลที่ครอบคลุมมีเครื่องมือที่จะทำให้กระบวนการนี้เป็นไปโดยอัตโนมัติ

สคริปต์การครอบคลุม สามารถสร้างรายงานการครอบคลุมของโค้ดได้ด้วยคำสั่งเดียวโดยไม่ต้องรอให้อัปเดต UI ของ Gerrit ปัจจุบันสคริปต์นี้ได้รับการรองรับใน Linux, Mac, iOS และ ChromeOS

ตัวอย่างการใช้งานมีดังนี้

$ gn gen out/coverage \
    --args='use_clang_coverage=true is_component_build=false'
$ python tools/code_coverage/coverage.py \
    crypto_unittests url_unittests \
    -b out/coverage -o out/report \
    -c 'out/coverage/crypto_unittests' \
    -c 'out/coverage/url_unittests --gtest_filter=URLParser.PathURL' \
    -f url/ -f crypto/

การดำเนินการนี้จะสร้างและเรียกใช้ crypto_unittests และ url_unittests targets ส่วน url_unittests จะเรียกใช้เฉพาะ URLParser.PathURL ทดสอบ ระบบจะกรองรายงานการครอบคลุมเพื่อรวมเฉพาะไฟล์และไดเรกทอรีย่อยใน url/ และ crypto/ นอกจากการทำให้กระบวนการเป็นแบบอัตโนมัติแล้ว สคริปต์นี้ยังมีฟีเจอร์เพิ่มเติมเพื่อดูการครอบคลุมของโค้ดตามไดเรกทอรีและคอมโพเนนต์

ภาพหน้าจอแสดงผลลัพธ์จากสคริปต์การครอบคลุม มุมมองไดเรกทอรี
ภาพหน้าจอแสดงผลลัพธ์จากสคริปต์การครอบคลุม มุมมองคอมโพเนนต์

เครื่องมือการครอบคลุมของโค้ดให้รายละเอียดการครอบคลุมของโค้ดตามไดเรกทอรีและคอมโพเนนต์สำหรับฐานของโค้ดทั้งหมดสำหรับ Windows, iOS, Android, Linux และ ChromeOS

แชร์ความคิดเห็น: ติดต่อ code-coverage @ chromium.org หรือรายงานข้อบกพร่องใน crbug.com

แหล่งข้อมูล