gtest-demo 开源项目教程
1. 项目的目录结构及介绍
gtest-demo 项目的目录结构如下:
gtest-demo/
├── CMakeLists.txt
├── README.md
├── include/
│ └── my_project/
│ └── my_class.h
├── src/
│ └── my_class.cpp
└── tests/
├── CMakeLists.txt
└── test_my_class.cpp
目录介绍
- CMakeLists.txt: 顶层 CMake 配置文件,用于构建整个项目。
- README.md: 项目说明文档。
- include/: 包含项目的头文件。
- my_project/: 具体的头文件目录。
- my_class.h: 示例类的头文件。
- my_project/: 具体的头文件目录。
- src/: 包含项目的源文件。
- my_class.cpp: 示例类的实现文件。
- tests/: 包含项目的测试文件。
- CMakeLists.txt: 测试目录的 CMake 配置文件。
- test_my_class.cpp: 针对
my_class的测试文件。
2. 项目的启动文件介绍
项目的启动文件主要是 tests/test_my_class.cpp,它包含了使用 Google Test 框架编写的测试用例。
启动文件内容
#include <gtest/gtest.h>
#include "my_project/my_class.h"
// 示例测试用例
TEST(MyClassTest, DefaultConstructor) {
MyClass obj;
EXPECT_EQ(obj.getValue(), 0);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
启动文件介绍
- #include <gtest/gtest.h>: 引入 Google Test 头文件。
- #include "my_project/my_class.h": 引入项目中的头文件。
- TEST(MyClassTest, DefaultConstructor): 定义一个测试用例,测试
MyClass的默认构造函数。 - **int main(int argc, char argv): 主函数,初始化 Google Test 并运行所有测试用例。
3. 项目的配置文件介绍
项目的配置文件主要是 CMakeLists.txt 文件,它位于项目根目录和 tests 目录下。
根目录下的 CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(gtest_demo)
set(CMAKE_CXX_STANDARD 14)
# 添加头文件目录
include_directories(include)
# 添加源文件
add_executable(my_project src/my_class.cpp)
# 添加测试目录
add_subdirectory(tests)
tests 目录下的 CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
# 查找 Google Test
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
# 添加测试可执行文件
add_executable(test_my_class tests/test_my_class.cpp)
# 链接 Google Test 库
target_link_libraries(test_my_class ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES})
# 添加测试
add_test(NAME test_my_class COMMAND test_my_class)
配置文件介绍
- cmake_minimum_required(VERSION 3.10): 指定 CMake 的最低版本要求。
- project(gtest_demo): 定义项目名称。
- set(CMAKE_CXX_STANDARD 14): 设置 C++ 标准为 C++14。
- include_directories(include): 添加头文件目录。
- add_executable(my_project src/my_class.cpp): 添加可执行文件。
- add_subdirectory(tests): 添加测试目录。
- find_package(GTest REQUIRED): 查找 Google Test 包。
- **include_directories(${GTEST_INCLUDE_DIRS})
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



