GoogleTest run_all_tests ไม่พบโปรแกรมติดตั้งการทดสอบ

ฉันมีโปรเจ็กต์ C++ ที่จะประกอบด้วยการทดสอบของ Google เท่านั้น โปรเจ็กต์นี้อ้างอิงถึงโปรเจ็กต์อื่น (โปรเจ็กต์ที่กำลังทดสอบ) ฉันมีโฟลเดอร์รวมและซอร์สสำหรับส่วนหัวและไฟล์การใช้งาน ฉันกำลังสร้างคลาสการทดสอบการแข่งขันของ Google และแยกส่วนหัวและการนำไปใช้งานลงในโฟลเดอร์รวมและซอร์ส ฉันมี main.cpp ที่มีรหัสต่อไปนี้:

//main.cpp
#include "../inc/zeroEstimatorTest.h"
#include "gtest/gtest.h"

int main(int argc, char **argv)
{
  ::testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}

ปัญหาที่ฉันมีคือการเรียก RUN_ALL_TESTS() ไม่ได้เรียกโปรแกรมทดสอบ Google ของฉัน ฟิกซ์เจอร์ทดสอบอยู่ในการใช้งานของคลาสการทดสอบ ดูเหมือนว่านี้:

//zeroEstimatorTest.cpp
class zeroEstimatorTest : public ::testing:Test
{
...
};

TEST_F(zeroEstimatorTest, zeroTest)
{
...
}

โครงการสร้างและรัน แต่ผลลัพธ์เป็นดังนี้:

[0;32m[==========] [mRunning 0 tests from 0 test cases.
[0;32m[==========] [m0 tests from 0 test cases ran. (0 ms total)
[0;32m[  PASSED  ] [m0 tests.

ขณะนี้ฉันใช้ Eclipse (เป็นครั้งแรก) และใช้เครื่อง Linux 64

สิ่งที่ฉันได้ทำ:

  • คลาส zeroEstimatorTest มี "zeroEstimatorTest.h" ที่ด้านบนสุด
  • #include "gtest/gtest.h" อยู่ที่ด้านบนสุดของทั้งสามไฟล์ (main.cpp, zeroEstimatorTest.h และ zeroEstimatorTest.cpp)

ใครสามารถช่วยได้บ้าง?

ขอบคุณมาก!


person supraMan    schedule 06.07.2015    source แหล่งที่มา


คำตอบ (1)


ปัญหาคือคุณไม่ได้ตั้งชื่อตัวกรองการทดสอบ ลองเริ่มต้นการทดสอบ Google ด้วย --gtest_filter= ซึ่งสามารถทำได้โดยใช้พารามิเตอร์ฟังก์ชันหลัก

person Anis Belaid    schedule 06.07.2015
comment
ฉันได้ลองเพิ่ม --gtest_filter=* ไปยังอาร์กิวเมนต์การกำหนดค่าการดีบักภายใน Eclipse แล้ว แต่ไม่สามารถแก้ไขปัญหาได้ มีอะไรที่ฉันทำผิดหรือเปล่า? มิฉะนั้น ฉันยังดูที่ไพรเมอร์ทดสอบของ Google ด้วยและมีข้อความดังต่อไปนี้: ตามค่าเริ่มต้น โปรแกรม Google Test จะทำการทดสอบทั้งหมดที่ผู้ใช้กำหนดไว้ - person supraMan; 06.07.2015
comment
ตรวจสอบให้แน่ใจว่าไฟล์ zeroestimatetest.cpp ได้รับการคอมไพล์ด้วยโปรแกรมทดสอบของคุณ ซึ่งอาจเป็นสาเหตุของปัญหาของคุณได้ - person Anis Belaid; 07.07.2015