Clion搭建Gtest单元测试框架

本文最后更新于:1 年前

Clion搭建Gtest单元测试框架

1 下载GTest源码

git clone https://github.com/google/googletest.git

下载下来的google gtest源码目录结构如下,里面包含了很多东西,这里我们只是想利用gtest对自己的代码进行单元测试,因此只需要关注红框所求的文件夹即可,其他的暂时不需要关注

img

2 导入 Gtest

使用CLion新建一下C++项目,把gtest引入到项目中,将上面googletest目录放在external下面了,这个目录随意,看个人喜好了。

image-20210525000900512

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;
}

image-20210525001538855


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!