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

แหล่งข้อมูล