单元测试

CLion 集成了 Google TestCatchBoost.TestDoctest 框架,可以让您轻松执行单元测试。

运行测试

有一种默认运行测试的方法,只要在 CLion 中运行一个常规可执行文件即可。 不过,为了更充分利用内置的测试运行程序,请使用特殊的 Google Test、Catch、Boost.Test 或 Doctest 配置。

运行测试

假如您的 CMake 目标已经与 gtestgmock 关联了,那么将自动创建该配置。 或者您也可以按 ⌃⇧R 来运行一个简单测试、固定例程或 整个文件。 此外,您还可以在 Run | Edit Configurations... 设置中手动创建和 更新此类配置:

运行测试

要在使用 Catch 配置时缩小测试组,请使用标签并利用标签名称补全功能:

Catch 配置

测试运行程序

检查结果

使用简单易用和流畅的单元测试运行程序,充分利用测试驱动的开发流程。 它的 专用视图可以显示:

  • 进度栏,显示了至今为止已执行测试的百分比,
  • 所有运行测试的树形视图,包括测试状态和测试持续时间 等信息,
  • 完整的测试输出流等等

此外,CLion 的测试运行程序还可以让您:

  • 运行任意测试、所有测试或所有失败的测试,
  • 导出测试 结果,从历史记录中打开之前的结果,自动保存,
  • 通过 Ctrl+↓ 导航至特定测试的源代码
运行/状态图标

运行/状态图标

左边装订区域中的图标可以让您运行/调试测试,或者使用 Valgrind Memcheck 运行它们,还可以报告测试的状态:成功或失败。

生成代码

代码生成功能 (Alt+Insert) 可以在写单元测试时 起到很大作用。 对于 Google Test,请创建测试、测试固定例程或 SetUp/TearDown 方法。

测试中的代码生成

在为固定例程生成测试时,TEST() 宏将被自动转换 为 适当的 TEST_F()TEST_P()TYPED_TEST()TYPED_TEST_P()

测试中的代码生成
CTest 支持

CTest 支持

CLion 支持 CMake 特定的测试运行程序 CTest。 这意味着将检测到使用 CTest 运行的测试列表,并且 IDE 会自动为它们创建运行/调试配置。 启动测试时,结果将呈现在内置测试运行程序中,您可以在其中调试测试,仅重新运行失败的测试等。