# unitTestDemo **Repository Path**: lkmagJe/unit-test-demo ## Basic Information - **Project Name**: unitTestDemo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-12-13 - **Last Updated**: 2023-12-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 一个基于GTest的C++单元测试框架 ## 框架能力 作为C++程序员,想要使用GTest,难免要改动源码和编译脚本,如果对GTest和项目结构不够了解,要耗费大量的时间和精力。 Unit_test_demo单元测试框架为了解决这个问题,支持编译集成GTest到目标测试程序。 你只需按照在src中放入自己的待测试代码,tests中放入自己的测试代码就可以一键生成单元测试程序。 ## 目录结构 ``` cmake #自定义cmake模块 googletest # GTest源码,编译出gtest静态库 src # 目标代码 | -- # 待测试代码 | CMakeLists.txt # 待测试代码cmake文件 tests # 单元测试代码,编译出的测试可执行程序名与文件名相同 CMakeLists.txt # cmake文件,先调用src路径下cmake将待测试文件编译为Unit_Test_Demo::Test静态/动态库, # 再编译tests路径下的所有测试代码并链接gtest、Unit_Test_Demo::Test库生成可执行测试程序 build_for_test # 执行脚本,先编译安装GTest,再cmake上面的CMakeLists.txt ``` ## 如何添加自己的测试代码并使用:以Add功能为例 1. 在src下按照编译的组织结构要求新建文件夹放入自己的待测试代码。 当前的待测试代码: "Network" "Poller" "Thread" "Util" 放入src文件夹。 ``` mkdir src/Example cd src/Example vim src/Example/add.h # add函数声明: void add(int ,int); vim src/Example/add.cpp # add函数实现: void add(int a, int b) {return a + b;} ``` 2. 更新src下的CMakeLists.txt编译文件。 ``` src下的CMakeLists.txt会自动扫描所有的.cpp和.h文件,所以不需要修改。 ``` 3. 在tests中添加单元测试代码。 ``` vim tests/add_test.cpp # 在add_test.cpp中添加单元测试代码 ``` 4. 执行 ``` ./build_for_test #编译 ./build/bin/add_test #执行单元测试 ``` ## 欢迎使用,开发不易,如果对你有帮助的话,请点个star!