【发布时间】:2016-01-30 04:39:36
【问题描述】:
这应该是一个相当简单的问题,但考虑到使用 cmake 构建项目的黑魔法,它将帮助相当多的人解决这个问题。
我正在尝试让我的代码库更有条理。为此,我正在根据其域创建包含测试套件的子文件夹。
Google 测试本身已经在编译和运行,唯一的问题是通过这种重组,Google 测试无法找到我拥有的任何测试用例。
这是我的结构:
测试\ | \域1\ |CMakeLists.txt |domain1_test.cpp |domain1_test.hpp |[.. 更多测试...] \域2\ |CMakeLists.txt |domain2_test.cpp |domain2_test.hpp |[.. 更多测试 ...] |main.cpp |CMakeLists.txt如您所见,我有两个存放测试的文件夹。
其中的CMakeLists.txt文件如下:
主测试目录中的CMakeLists.txt 是:
我做错了什么?
运行测试只是说没有找到测试。
谢谢!
更新 添加我的 main.cpp
其实没什么特别的,只是样板的 main.cpp 文件。
#include "gtest/gtest.h"
int main(int argc, char ** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
【问题讨论】:
-
有几件事要检查。您的
main.cpp中有什么内容?您是否需要它,或者您可以链接到gtest_main而不是gtest,从而允许 gtest 本身计算出哪些测试可以运行?您的顶级CMakeLists.txt是否在某处调用了enable_testing()? -
我添加了我正在使用的
main.cpp文件。是的,我的顶级 CMakeLists.txt 有enable_testing()调用。
标签: c++ cmake googletest