我的项目组织如下:
dataStructures/
和common/
的代码) build\
目录包含构建的目标。实际代码可以在这里看到:https://github.com/brainydexter/PublicCode/tree/master/cpp
我可以为实际代码构建shared
库(如common
)。现在,我想使用GoogleTest进行测试。所以,我创建了一个test
目录并将测试代码放在那里(我在repo中的内容只是一个示例,更像是hello world以使构建系统正常工作。我将添加更多测试用例稍后)。
我需要一些帮助才能从最顶层的CMakeLists.txt 触发测试。我不知道该怎么做。在test
中,CMakeLists.txt看起来像这样:
cmake_minimum_required(VERSION 3.1.2)
add_subdirectory(googletest/googletest)
include_directories(googletest/googletest/include)
add_subdirectory(common)
enable_testing()
add_executable(testCpp main.cpp)
target_link_libraries(testCpp gtest gtest_main )
我是否需要添加其他内容才能在test/common
中启用测试?
test/common/CMakeLists.txt
:
file(GLOB SOURCES "src/*.cpp")
add_executable(testCommon ${SOURCES})
target_link_libraries(testCommon cppCommon)
我不确定目标应该是可执行的还是Google测试框架可以使用的库?我很感激您的帮助。
答案 0 :(得分:0)
您可能会发现FindGTest模块很有帮助。由于gtest的位置是固定的,你可以沿着这些方向做一些事情来找到它:
set (GTEST_ROOT ${CMAKE_SOURCE_DIR}/googletest)
find_package (GTest required)
至于您是否需要可执行文件,此模块定义了GTEST_MAIN_LIBRARIES
变量,因此当您链接测试时,您只需执行以下操作:
target_link_libraries(testCommon ${GTEST_MAIN_LIBRARIES})
生成的二进制文件将使用默认的gtest main函数。