GoogleTest ดำเนินตามปรัชญา Abseil Live at Head เราขอแนะนำให้อัปเดตเป็นคอมมิตล่าสุดในสาขา main
บ่อยที่สุดเท่าที่จะทำได้ เราเผยแพร่เวอร์ชันความหมายเป็นครั้งคราว โดยแท็กด้วย v${major}.${minor}.${patch}
(เช่น v1.15.2
)
เอกสารของเราเผยแพร่แล้วบนหน้า GitHub ที่ https://google.github.io/googletest/ เราขอแนะนำให้เรียกดูเอกสารบน GitHub Pages แทนที่จะเรียกดูจากพื้นที่เก็บข้อมูลโดยตรง
รุ่น 1.15.2 พร้อมใช้งานแล้ว
สาขา 1.15.x ต้องการอย่างน้อย C ++ 14
เราใช้ระบบภายในของ Google เพื่อบูรณาการอย่างต่อเนื่อง
เรากำลังวางแผนที่จะพึ่งพา Abseil
พื้นที่เก็บข้อมูลนี้เป็นการรวมโครงการ GoogleTest และ GoogleMock ที่แยกจากกันก่อนหน้านี้ สิ่งเหล่านี้มีความเกี่ยวข้องกันอย่างใกล้ชิดจนสมเหตุสมผลที่จะรักษาและเผยแพร่ร่วมกัน
ดูคู่มือผู้ใช้ GoogleTest สำหรับเอกสารประกอบ เราขอแนะนำให้เริ่มต้นด้วย GoogleTest Primer
ข้อมูลเพิ่มเติมเกี่ยวกับการสร้าง GoogleTest อยู่ที่ googletest/README.md
กรอบการทดสอบ xUnit:
Googletest ขึ้นอยู่กับกรอบการทดสอบ xUnit ซึ่งเป็นสถาปัตยกรรมยอดนิยมสำหรับการทดสอบหน่วย
ทดสอบการค้นพบ:
Googletest จะค้นพบและดำเนินการทดสอบของคุณโดยอัตโนมัติ โดยไม่จำเป็นต้องลงทะเบียนการทดสอบด้วยตนเอง
ชุดการยืนยันที่หลากหลาย:
Googletest มีการยืนยันที่หลากหลาย เช่น ความเท่าเทียมกัน ความไม่เท่าเทียมกัน ข้อยกเว้น และอื่นๆ อีกมากมาย ทำให้ง่ายต่อการทดสอบโค้ดของคุณ
การยืนยันที่ผู้ใช้กำหนด:
คุณสามารถกำหนดการยืนยันของคุณเองด้วย Googletest ทำให้ง่ายต่อการเขียนการทดสอบที่เกี่ยวข้องกับโค้ดของคุณโดยเฉพาะ
การทดสอบความตาย:
Googletest รองรับการทดสอบความตาย ซึ่งตรวจสอบว่ารหัสของคุณออกในลักษณะใดลักษณะหนึ่ง ทำให้มีประโยชน์สำหรับการทดสอบรหัสการจัดการข้อผิดพลาด
ความล้มเหลวร้ายแรงและไม่ร้ายแรง:
คุณสามารถระบุได้ว่าการทดสอบที่ล้มเหลวควรถือว่าร้ายแรงหรือไม่ร้ายแรงด้วย Googletest ช่วยให้การทดสอบทำงานต่อไปได้แม้ว่าความล้มเหลวจะเกิดขึ้นก็ตาม
การทดสอบแบบมีพารามิเตอร์ตามค่า:
Googletest รองรับการทดสอบแบบมีพารามิเตอร์ซึ่งทำงานหลายครั้งด้วยค่าอินพุตที่แตกต่างกัน ทำให้มีประโยชน์สำหรับการทดสอบฟังก์ชันที่รับอินพุตต่างกัน
การทดสอบแบบมีพารามิเตอร์ประเภท:
Googletest ยังรองรับการทดสอบแบบมีพารามิเตอร์ประเภทซึ่งทำงานด้วยข้อมูลประเภทต่างๆ ทำให้มีประโยชน์สำหรับการทดสอบฟังก์ชันที่ทำงานกับข้อมูลประเภทต่างๆ
ตัวเลือกต่างๆ สำหรับการทดสอบการทำงาน:
Googletest มีตัวเลือกมากมายสำหรับการรันการทดสอบ รวมถึงการรันการทดสอบแต่ละรายการ การรันการทดสอบตามลำดับเฉพาะ และการรันการทดสอบแบบขนาน
GoogleTest ปฏิบัติตามนโยบายการสนับสนุนพื้นฐานของ C++ ของ Google ดูตารางนี้สำหรับรายการคอมไพเลอร์ แพลตฟอร์ม และเครื่องมือสร้างเวอร์ชันที่รองรับในปัจจุบัน
นอกเหนือจากโครงการภายในจำนวนมากที่ Google แล้ว GoogleTest ยังถูกนำไปใช้โดยโครงการที่โดดเด่นดังต่อไปนี้:
โครงการ Chromium (หลังเบราว์เซอร์ Chrome และ Chrome OS)
คอมไพเลอร์ LLVM
Protocol Buffers รูปแบบการแลกเปลี่ยนข้อมูลของ Google
ไลบรารีคอมพิวเตอร์วิทัศน์ OpenCV
Gtest Runner คือตัวดำเนินการทดสอบอัตโนมัติและอินเทอร์เฟซผู้ใช้แบบกราฟิกที่ใช้ Qt5 พร้อมฟีเจอร์อันทรงพลังสำหรับแพลตฟอร์ม Windows และ Linux
GoogleTest UI เป็นตัวดำเนินการทดสอบที่เรียกใช้ไบนารีการทดสอบของคุณ ช่วยให้คุณติดตามความคืบหน้าผ่านแถบความคืบหน้า และแสดงรายการความล้มเหลวในการทดสอบ การคลิกที่รายการใดรายการหนึ่งจะแสดงข้อความแสดงความล้มเหลว GoogleTest UI เขียนด้วยภาษา C#
GTest TAP Listener เป็นตัวฟังเหตุการณ์สำหรับ GoogleTest ที่ใช้โปรโตคอล TAP สำหรับเอาต์พุตผลลัพธ์การทดสอบ หากผู้ทดสอบของคุณเข้าใจ TAP คุณอาจพบว่ามีประโยชน์
gtest-parallel เป็นตัวดำเนินการทดสอบที่ทำการทดสอบจากไบนารีของคุณแบบขนานเพื่อเพิ่มความเร็วอย่างมีนัยสำคัญ
GoogleTest Adapter เป็นส่วนขยาย VS Code ที่อนุญาตให้ดู GoogleTest ในมุมมองแบบต้นไม้ และเรียกใช้/แก้ไขข้อบกพร่องในการทดสอบของคุณ
C++ TestMate เป็นส่วนขยาย VS Code ที่อนุญาตให้ดู GoogleTest ในมุมมองแบบต้นไม้ และเรียกใช้/ดีบักการทดสอบของคุณ
Cornichon เป็นตัวแยกวิเคราะห์ Gherkin DSL ขนาดเล็กที่สร้างโค้ด stub สำหรับ GoogleTest
โปรดอ่าน CONTRIBUTING.md
เพื่อดูรายละเอียดเกี่ยวกับวิธีการมีส่วนร่วมในโครงการนี้
ขอให้มีความสุขในการทดสอบ!