使用CMake的Google C++ Testing Framework的最简单示例

Agn*_*ian 25 c++ unit-testing cmake googletest

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

这是目录结构:

~/project1
 |
 |-- project1.cpp
 |-- project1.h
 |-- project1_unittests.cpp
 \-- CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

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

Chi*_*ang 25

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

# For make-based builds, defines make target named test.
# For Visual Studio builds, defines Visual Studio project named RUN_TESTS.
enable_testing()
Run Code Online (Sandbox Code Playgroud)

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

add_executable(runUnitTests
    project1_unittests.cpp
)
target_link_libraries(runUnitTests gtest gtest_main)
Run Code Online (Sandbox Code Playgroud)

添加运行此可执行文件的测试:

add_test(
    NAME runUnitTests
    COMMAND runUnitTests
)
Run Code Online (Sandbox Code Playgroud)