本文主要记录如何使用GTest(google test)对cmake工程进行单元测试。

安装依赖

cmake

安装3.10以上版本cmake,一般到 官网 下载安装最新版本即可。

1
2
# ubuntu 18.04
sudo apt install -y cmake

GTest

下载、安装 GTest最新版本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# ubuntu 18.04
sudo apt install -y libgtest-dev

# 编译、安装GTest
# 进入GTest源码目录
cd /usr/src/gtest
mkdir build && cd build
cmake ..
make
sudo make install

撰写CMakeLists.txt

主目录

引入测试目录(test)的CMakeLists.txt文件。

1
add_subdirectory(test)

测试目录

CMakeLists.txt文件内容如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
cmake_minimum_required(VERSION 3.10)

enable_testing()
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})

find_package(Threads REQUIRED)

aux_source_directory(. TEST_FILES)
add_executable(tests ${TEST_FILES})

# binary_search替换为项目生成的库目标名
target_link_libraries(tests binary_search ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
gtest_discover_tests(tests)

完整示例

示例代码在 这里

1
2
3
4
5
6
7
8
9
# 进入示例代码所在目录
mkdir build && cd build
cmake ..
make

# 主程序
./main
# 测试程序
./test/tests