คำถามติดแท็ก googletest

10
เปรียบเทียบกรอบการทดสอบหน่วย C ++ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันรู้ว่ามีคำถามสองสามข้อเกี่ยวกับคำแนะนำสำหรับกรอบการทดสอบหน่วย C ++ แต่คำตอบทั้งหมดไม่ได้ช่วยเพราะพวกเขาเพิ่งแนะนำหนึ่งในกรอบ แต่ไม่ได้ให้ข้อมูลใด ๆ เกี่ยวกับการเปรียบเทียบ (คุณสมบัติ) ฉันคิดว่ากรอบที่น่าสนใจที่สุดคือ CppUnit, Boost และกรอบการทดสอบใหม่ของ Google มีใครเปรียบเทียบบ้างไหม?

10
วิธีเริ่มทำงานกับ GTest และ CMake
ฉันเพิ่งถูกขายโดยใช้ CMake สำหรับการรวบรวมโปรเจ็กต์ C ++ ของฉันและตอนนี้ต้องการเริ่มเขียนการทดสอบหน่วยสำหรับรหัสของฉัน ฉันตัดสินใจที่จะใช้ยูทิลิตี้ Google Test เพื่อช่วยในเรื่องนี้ แต่ต้องการความช่วยเหลือในการเริ่มต้นใช้งาน ทุกวันผมได้อ่านคำแนะนำต่างๆและตัวอย่าง ได้แก่รองพื้นการแนะนำที่ IBMและคำถามบางอย่างเกี่ยวกับ SO ( ที่นี่และที่นี่ ) เช่นเดียวกับแหล่งข้อมูลอื่น ๆ ที่ฉันติดตามของหาย ฉันรู้ว่ามีอะไรมากมายที่นั่น แต่ฉันก็ยังคงประสบปัญหา ขณะนี้ฉันกำลังพยายามใช้การทดสอบขั้นพื้นฐานที่สุดเพื่อยืนยันว่าฉันได้รวบรวม / ติดตั้ง gtest ถูกต้องแล้วและไม่ได้ผล ไฟล์ต้นฉบับเดียว (testgtest.cpp) ถูกนำมาจากคำตอบก่อนหน้านี้เกือบทั้งหมด: #include <iostream> #include "gtest/gtest.h" TEST(sample_test_case, sample_test) { EXPECT_EQ(1, 1); } และ CMakeLists.txt ที่เกี่ยวข้องของฉันมีดังนี้: cmake_minimum_required(VERSION 2.6) project(basic_test) # Setup testing …

3
วิธีเรียกใช้กรณีทดสอบเฉพาะใน GoogleTest
ฉันกำลังพยายามเขียนฟังก์ชัน / วิธีการสำหรับโครงการของฉันซึ่งจะถามผู้ใช้ว่าคุณจะเรียกใช้กรณีทดสอบใดทั้งหมด ดูเหมือนด้านล่าง ... , Test_Cases_1 |_TestNo1 |_TestNo2....so on Test_Cases_2 |_TestNo1 |_TestNo2....so on .... ....so on Test_Cases_N |_TestNo1 |_TestNo2....so on ดังนั้นตอนนี้ความท้าทายคือในขณะที่ดำเนินโครงการควรแจ้งให้ฉันทราบว่าคุณต้องการดำเนินการทดสอบกรณีใดบ้าง ถ้าฉันเลือกTest_Cases_1และTest_Cases_N. แล้วมันควรจะดำเนินการทั้งสองกรณีทดสอบและควรแยกอื่น ๆ Test_Cases_2 to ....ทั้งหมดจาก ในหน้าต่างผลผมก็อยากจะเห็นผลของการและTest_Cases_1Test_Cases_N ดังนั้นถ้าฉันจะดู GoogleTest มีวิธีที่เรียกว่าtest_case_to_run_count(); แต่ทั้งหมดtest casesได้รับการลงทะเบียนด้วยวิธี Test_F () ดังนั้นฉันจึงทำการวิเคราะห์มากมาย แต่ก็ยังไม่พบวิธีแก้ปัญหาใด ๆ โปรดช่วยฉันด้วย

4
องค์กรโครงการ C ++ (พร้อม gtest, cmake และ doxygen)
ฉันยังใหม่กับการเขียนโปรแกรมโดยทั่วไปดังนั้นฉันจึงตัดสินใจว่าจะเริ่มต้นด้วยการสร้างคลาสเวกเตอร์อย่างง่ายใน C ++ อย่างไรก็ตามฉันต้องการสร้างนิสัยที่ดีตั้งแต่เริ่มต้นแทนที่จะพยายามแก้ไขขั้นตอนการทำงานของฉันในภายหลัง ขณะนี้ฉันมีเพียงสองไฟล์vector3.hppและvector3.cpp. โครงการนี้จะเริ่มเติบโตอย่างช้าๆ (ทำให้เป็นไลบรารีพีชคณิตเชิงเส้นทั่วไปมากขึ้น) เมื่อฉันคุ้นเคยกับทุกสิ่งมากขึ้นฉันจึงต้องการใช้เค้าโครงโครงการ "มาตรฐาน" เพื่อทำให้ชีวิตง่ายขึ้นในภายหลัง หลังจากมองไปรอบ ๆ ฉันได้พบสองวิธีในการจัดระเบียบไฟล์ hpp และ cpp วิธีแรก: project └── src ├── vector3.hpp └── vector3.cpp และสิ่งที่สอง: project ├── inc │ └── project │ └── vector3.hpp └── src └── vector3.cpp คุณจะแนะนำตัวไหนและเพราะอะไร ประการที่สองฉันต้องการใช้ Google C ++ Testing Framework สำหรับการทดสอบหน่วยของฉันเนื่องจากดูเหมือนว่าจะใช้งานง่าย คุณแนะนำให้รวมสิ่งนี้เข้ากับรหัสของฉันเช่นในinc/gtestหรือcontrib/gtestโฟลเดอร์หรือไม่ หากรวมกลุ่มคุณแนะนำให้ใช้fuse_gtest_files.pyสคริปต์เพื่อลดจำนวนหรือไฟล์หรือปล่อยให้เป็น หากไม่ได้รวมการพึ่งพานี้จะจัดการอย่างไร เมื่อพูดถึงการทดสอบการเขียนโดยทั่วไปมีการจัดระเบียบอย่างไร? …
123 c++  cmake  doxygen  googletest 

8
GoogleTest: จะข้ามการทดสอบได้อย่างไร
ใช้ Google Test 1.6 (Windows 7, Visual Studio C ++) ฉันจะปิดการทดสอบที่กำหนดได้อย่างไร (aka ฉันจะป้องกันไม่ให้การทดสอบทำงานได้อย่างไร) ฉันสามารถทำอะไรได้บ้างนอกจากแสดงความคิดเห็นในการทดสอบทั้งหมด
121 googletest 

12
วิธีตั้งค่า googleTest เป็นไลบรารีที่ใช้ร่วมกันบน Linux
Debian ไม่มีแพ็คเกจที่คอมไพล์ไว้ล่วงหน้าสำหรับ gTest อีกต่อไป พวกเขาแนะนำให้คุณรวมกรอบงานเข้ากับ makefile ของโครงการของคุณ แต่ฉันต้องการรักษา makefile ของฉันให้สะอาด ฉันจะตั้งค่า gTest เหมือนกับเวอร์ชันก่อนหน้า (<1.6.0) ได้อย่างไรเพื่อให้สามารถเชื่อมโยงกับไลบรารี
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.