c++ - 将 Google C++ 测试框架与 CMake 结合使用的最简单示例

标签 c++ unit-testing cmake googletest

我有一个非常简单的 C++ 库(一个头文件,一个 .cpp 文件)。我想使用 Google C++ 测试框架为这个项目编写单元测试。

目录结构如下:

~/project1
 |
 |-- project1.cpp
 |-- project1.h
 |-- project1_unittests.cpp
 \-- CMakeLists.txt

我不打算编写自己的 main() 函数。我想与 primer 中提到的 gtest_main 链接。 . CMakeLists.txt 应该包含什么?

最佳答案

启用 CMake 的内置测试子系统:

# For make-based builds, defines make target named test.
# For Visual Studio builds, defines Visual Studio project named RUN_TESTS.
enable_testing()

编译一个可执行单元测试并将其与 gtest 和 gtest_main 链接:

add_executable(runUnitTests
    project1_unittests.cpp
)
target_link_libraries(runUnitTests gtest gtest_main)

添加一个运行这个可执行文件的测试:

add_test(
    NAME runUnitTests
    COMMAND runUnitTests
)

关于c++ - 将 Google C++ 测试框架与 CMake 结合使用的最简单示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5900447/

相关文章:

python - 在单元测试中模拟 python 装饰器

c - 如何使用 cmake 静态共享库

c++ - 如何正确旋转 GLM 四元数?

c++ - -fpermissive 代码块中的选项。我该把 "-fpermissive"选项放在哪里?

C++ 二维动态数组崩溃

javascript - Jasmine - 监视 EXTJS 监听器中调用的函数

c++ - 错误 : syntax error before '@' token (why?)

python - 为什么我的 Python 代码无法通过单元测试?

c++ - 静态 Qt 链接问题 (MSVC2017)

为 arm cortex-m4 交叉编译 libwebsockets 时出现 cmake 错误