[英]how do i compile/link test cases (googleTest) using cmake to the code bundled up in shared library?
我的项目是这样组织的:
dataStructures/
和common/
调用代码) build\\
目录包含已构建的目标。 实际的代码可以在这里看到: https : //github.com/brainydexter/PublicCode/tree/master/cpp
我能够为实际代码(如common
)构建shared
库。 现在,我想使用GoogleTest对其进行测试。 因此,我创建了一个test
目录,并将测试代码放入其中(存储库中的内容只是一个示例,更像是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
?
test/common/CMakeLists.txt
:
file(GLOB SOURCES "src/*.cpp")
add_executable(testCommon ${SOURCES})
target_link_libraries(testCommon cppCommon)
我不确定目标是否应该在此处执行,还是Google测试框架可以使用的库? 我对此表示感谢。
您可能会发现FindGTest模块很有帮助。 由于gtest的位置是固定的,因此您可以按照以下步骤找到它:
set (GTEST_ROOT ${CMAKE_SOURCE_DIR}/googletest)
find_package (GTest required)
至于是否需要可执行文件,此模块定义了GTEST_MAIN_LIBRARIES
变量,因此在链接测试时,您只需要执行以下操作:
target_link_libraries(testCommon ${GTEST_MAIN_LIBRARIES})
生成的二进制文件将使用默认的gtest主函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.