C++ 测试助手

专为 C++ 项目设计的测试全流程助手。从编写单元测试、配置测试框架,到诊断失败的测试、检测内存问题,一站式帮你建立稳定可靠的测试体系。适用于 GoogleTest + CMake/CTest 环境。

这个技能能帮你做什么

如果你在做 C++ 项目,这个技能能帮你搞定测试相关的一切事情。它围绕"先写测试、再写代码"(测试驱动开发)的理念,提供从写测试到跑测试再到修复问题的完整工作流。

简单说,它能帮你:

  • 写测试 —— 为新的功能编写测试用例,确保代码按预期工作
  • 配环境 —— 用 GoogleTest + CMake 搭建测试框架,一键编译运行
  • 查故障 —— 测试失败时快速定位问题根因,提供排查思路
  • 防隐患 —— 通过内存检测、并发检测等工具发现隐藏的 Bug
  • 看覆盖 —— 统计哪些代码被测试覆盖到了,哪些还没测到

什么时候用

写新功能时 —— 先写测试定义好"这个功能应该做什么",再写代码实现它

修复 Bug 时 —— 先写一个测试复现这个 Bug,修复后测试自动通过

重构代码时 —— 测试确保重构前后功能不变,让你大胆改代码

代码审查前 —— 跑一遍测试,确认所有功能都正常

主要覆盖哪些场景

  1. 测试编写
    • 普通函数测试(比如验证加法函数 2+3=5)
    • 需要准备数据的复杂测试(比如先创建数据库再查数据)
    • 依赖外部组件的测试(用模拟对象替代真实网络请求)
  2. 测试运行
    • 编译并运行全部测试
    • 只运行某个特定测试
    • 持续集成(CI)中自动运行测试
  3. 故障诊断
    • 测试失败时定位问题
    • 处理时好时坏的" flaky "测试(不稳定测试)
    • 添加日志辅助排查
  4. 质量检测
    • 内存泄漏检测(AddressSanitizer)
    • 未定义行为检测(UndefinedBehaviorSanitizer)
    • 数据竞争检测(ThreadSanitizer)
  5. 覆盖率统计
    • 查看哪些代码被测试覆盖到了
    • 生成可视化报告(网页形式)

怎么用

新手入门 —— 告诉它"我要为这个函数写个测试",它会给你清晰的步骤和示例

排查问题 —— 测试失败了?把错误信息发给它,它会帮你分析可能的原因

配置项目 —— 不知道 GoogleTest 怎么配置?它会给你 CMake 配置建议

提升质量 —— 想加内存检测?它会告诉你需要修改哪些编译选项

核心工作流

这个技能遵循"红 → 绿 → 重构"的经典测试驱动开发流程:

  1. 红(Red) —— 先写一个测试,它现在会失败(因为功能还没实现)
  2. 绿(Green) —— 用最少的代码让这个测试通过
  3. 重构(Refactor) —— 改进代码质量,同时确保测试仍然通过

最佳实践建议

  • 测试应该是独立的,一个测试失败不会影响另一个
  • 避免测试里用到真实的时间、网络或文件系统
  • 优先用"假数据"代替真实依赖,测试更快更稳定
  • 在持续集成(CI)里自动跑测试,有问题第一时间发现
  • 定期跑内存检测,发现潜在的内存泄漏

适用场景

  • C++ 项目的单元测试和集成测试
  • 使用 GoogleTest(gtest)作为测试框架的项目
  • 使用 CMake 作为构建工具的项目
  • 需要测试覆盖率统计的项目

不适用场景

  • 非 C++ 项目(如 Python、JavaScript 等)
  • 不涉及测试的工作(如纯功能开发、UI 设计)
  • 不写测试的
v1.0.0 2026-07-17
下载