Clion搭建Gtest单元测试框架
本文最后更新于:1 年前
Clion搭建Gtest单元测试框架
1 下载GTest源码
git clone https://github.com/google/googletest.git
下载下来的google gtest源码目录结构如下,里面包含了很多东西,这里我们只是想利用gtest对自己的代码进行单元测试,因此只需要关注红框所求的文件夹即可,其他的暂时不需要关注
2 导入 Gtest
使用CLion新建一下C++项目,把gtest引入到项目中,将上面googletest目录放在external下面了,这个目录随意,看个人喜好了。
3 配置 CMakeList.txt
- 设置GOOGLETEST_VERSION变量,这个变量,其实是在googletest-master目录下的CMakeLists.txt中设置的,在googlegtest目录下的CMakeLists.txt中使用,如果我们不在项目的CMaksLists.txt中设置这个变量,则gtest的编译会失败,这点非常重要。
- 添加googletest目录到项目中,这个很简单。
- 添加target link,这个示例中,我新了一个demotest.cpp,里面用来放置单元测试用例相关的代码,将其编译为二进制可执行文件,来对正式项目代码进行测试,因为它依赖于gtest_main,因此这里必须把它们link起来,否则,test_main的编译会失败。
cmake_minimum_required(VERSION 3.17) # cmake最低版本号要求
project(TestProject) # 项目名
set(GOOGLETEST_VERSION 1.10.0) # 设置 Gtest 的版本
set(CMAKE_CXX_STANDARD 11) # C++ 版本
set(CMAKE_CXX_FLAGS "-Wall") #
# 编译google test,会在当前目录生成libtest.a静态库
add_subdirectory(
external/googletest
)
# 添加头文件
include_directories(
include
external/googletest/include
)
#需要添加googletest运行需要的pthread
set(LIBRARIES
gtest
pthread)
set(SOURCE_FLIES tests/demotest.cpp) # 其余文件
add_executable(main src/main.cpp) # main 函数
add_executable(TestProject ${SOURCE_FLIES} external/googletest)
target_link_libraries(TestProject gtest_main)
4 测试
demotest.cpp
#include <iostream>
#include "gtest/gtest.h"
using namespace ::testing;
class GTestDemo : public Test {
public:
GTestDemo() : Test() {
}
~GTestDemo() override = default;
void SetUp() override {
Test::SetUp();
std::cout << "I am setup" << std::endl;
}
void TearDown() override {
Test::TearDown();
std::cout << "I am teardown" << std::endl;
}
};
TEST_F(GTestDemo, tc_example_01) {
std::cout << "GTestDemo" << std::endl;
}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!