01
CMake入门
CMake是什么?为什么需要CMake?CMake与Makefile的关系。
概念基础
02
CMake基础语法
CMakeLists.txt结构、cmake_minimum_required、project、add_executable、message
语法命令
03
CMake变量与缓存
set()、变量作用域、缓存变量、预设变量(CMAKE_CXX_STANDARD等)
变量缓存
04
CMake目标与属性
add_library、target_include_directories、target_link_libraries、属性设置
目标属性
05
CMake生成器与构建
Unix Makefiles、Ninja、Visual Studio、cmake --build
生成器构建
06
CMake条件与循环
if/elseif/else、foreach、while、函数与宏(function/macro)
控制流函数
07
CMake模块与find_package
include()、find_package机制、编写自定义Find模块
模块查找
08
CMake子目录与项目组织
add_subdirectory、多模块项目、源文件组织最佳实践
结构模块化
09
CTest入门
CTest是什么?与CMake关系、启用测试(enable_testing)
测试CTest
10
add_test命令
add_test基本用法、测试名称与命令、传递参数
命令测试
11
CTest配置与构建测试
ctest_config、ctest_build、ctest_test命令详解
配置构建
12
CTest标签与分组
set_tests_properties、LABELS属性、按标签运行测试
标签分组
13
CTest超时与资源管理
TIMEOUT属性、RESOURCE_LOCK、并行测试
超时资源
14
CTest覆盖率分析
CTest与gcov/lcov集成、COVERAGE标志、覆盖率报告
覆盖率gcov
15
CTest内存检测
CTest与Valgrind集成、MEMCHECK命令、检测内存泄漏
内存Valgrind
16
CTest仪表板与CDash
CDash是什么?配置上传结果、查看历史趋势
仪表板CDash
17
Google Test集成
FetchContent引入GTest、gtest_discover_tests、gtest_add_tests
GTest单元测试
18
Google Test高级特性
测试夹具(Test Fixtures)、参数化测试、类型参数化测试
夹具参数化
19
Google Test模拟框架
GMock入门、MOCK_METHOD、EXPECT_CALL、ON_CALL
GMock模拟
20
Catch2集成
FetchContent引入Catch2、CATCH_CONFIG_MAIN、TEST_CASE宏
Catch2轻量
21
Catch2高级特性
SECTION、GENERATOR、BENCHMARK宏、标签系统
生成器基准
22
Boost.Test集成
find_package(Boost)、BOOST_TEST_MODULE、BOOST_AUTO_TEST_SUITE
Boost套件
23
自定义测试框架
编写测试运行器、注册测试用例、CMake集成自定义测试
自定义框架
24
测试驱动开发(TDD)实战
红-绿-重构循环、CMake+CTest工作流、持续反馈
TDD实战
25
持续集成(CI)集成
GitHub Actions、GitLab CI、Jenkins配置
CI自动化
26
跨平台测试策略
Windows/Linux/macOS差异、条件编译、平台特定测试
跨平台策略
27
测试覆盖率门禁
设置覆盖率阈值、CI中自动检查、增量覆盖率分析
门禁覆盖率
28
大型项目测试组织
测试分层(单元/集成/系统)、目录结构、依赖管理
分层大型
29
性能测试与基准测试
Google Benchmark集成、CMake配置、结果分析
性能基准
30
CMake与CTest最佳实践
常见陷阱、调试技巧、团队协作规范、总结与展望
最佳实践总结