JetBrains Rider 2025.2 Help

C++ 单元测试支持

JetBrains Rider 帮助发现、运行和调试以下单元测试框架的单元测试:

使用 JetBrains Rider,您可以执行单个单元测试、文件中的所有测试、项目或解决方案中的所有测试。 您还可以执行在测试会话中组合的任意数量的测试。

在当前文档中发现测试

JetBrains Rider 直接在编辑器中发现单元测试,并在编辑器中的每个项目旁边添加相应的 操作指示器

JetBrains Rider 在编辑器中显示不同的单元测试指示器

您可以运行或调试的单元测试

已通过

该单元测试在上次执行中已通过。

已失败

该单元测试在上次执行中失败。

在当前文档中运行或调试测试

在当前文档中有多种运行或调试单元测试的方法。 您可以使用操作指示器、主菜单或快捷键:

  • 要运行或调试单个测试或测试类中的所有测试,请单击其旁边的操作指示器,或将插入点放在测试上并按 Alt+Enter。 在 操作列表 中,为测试 class 选择 运行/调试

  • 或者,您可以使用 运行单元测试 运行单元测试 Ctrl+;, R/调试单元测试 调试单元测试 Ctrl+;, D 命令,这些命令也可以在主菜单(测试 )和上下文菜单中使用。 这些命令的工作方式取决于编辑器中的光标位置或选择内容:

    • 要运行或调试单个测试,请将插入点放在测试名称上,或放在编辑器中其声明的任意位置。

    • 要运行多个测试,请在编辑器中选择所需的测试。

无论您选择哪种方式运行或调试测试,您都可以在单元测试窗口中查看执行进度、结果和输出。 如果有一个打开的 单元测试会话 ,执行的测试会被添加到该会话中。 如果没有测试会话或现有会话被 锁定 ,则会创建一个新的测试会话。

如果需要,您可以通过按 Ctrl+;, T 或从菜单中选择 测试 | 重复上次运行 来重新运行您上次执行的测试。

您还可以通过按 Ctrl+;, F 或从菜单中选择 测试 | 重新运行失败的测试 重新运行失败的测试。

在解决方案中发现单元测试

对于单元测试管理,JetBrains Rider 提供了 单元测试 窗口(视图 | 工具窗口 | 单元测试)。 使用此窗口,您可以在整个解决方案中探索并运行或调试单元测试。 请注意,项目中的单元测试仅在项目构建后才会出现在窗口中。 来自当前打开文件的测试会自动更新,新测试在创建后会立即出现在单元测试资源管理器中。

在单元测试资源管理器中,您可以:

  • 探索解决方案中的测试:以树状视图浏览所有单元测试,搜索测试并按子字符串过滤,按项目、命名空间等重新分组单元测试。

  • 通过在视图中双击任何测试,导航到其源代码。

  • 运行或调试选定的测试。

  • 从选定的测试创建单元测试会话 ,并/或将选定的项目添加到当前测试会话。

单元测试资源管理器显示整个解决方案中的测试

在项目或解决方案中运行或调试单元测试

您可以从单元测试资源管理器或解决方案资源管理器中运行或调试测试。 单元测试资源管理器的优势在于您只能看到测试,而使用其他窗口时,您需要知道哪些项目、文件和类包含测试。

  • 要从单元测试资源管理器中执行测试,请选择所需的测试并单击工具栏上的 运行单元测试 运行单元测试 Ctrl+;, R/调试单元测试 调试单元测试 Ctrl+;, D

    要选择多个测试,请选择一个分组节点或按住 Ctrl 键的同时单击所需的项目。 或者,在搜索字段中输入查询字符串以过滤掉所有不匹配的测试后再执行——在这种情况下,只有剩下的匹配测试会被执行。

  • 要运行或调试解决方案中的所有测试,请在主菜单中选择 测试 | 解决方案单元测试操作 | 从解决方案运行所有测试 或按 Ctrl+;, L

无论您选择哪种方式运行或调试测试,您都可以在单元测试窗口中查看执行进度、结果和输出。 如果有一个打开的 单元测试会话 ,执行的测试会被添加到该会话中。 如果没有测试会话或现有会话被 锁定 ,则会创建一个新的测试会话。

如果需要,您可以通过按 Ctrl+;, T 或从菜单中选择 测试 | 重复上次运行 来重新运行您上次执行的测试。

您还可以通过按 Ctrl+;, F 或从菜单中选择 测试 | 重新运行失败的测试 重新运行失败的测试。

单元测试会话

您可以将针对应用程序特定部分的单元测试分组到多个单元测试会话中。 一个单元测试会话可以包含来自不同项目的测试。 您可以根据需要拥有多个测试会话并分别运行它们。 一个测试可以包含在多个不同的测试会话中。

JetBrains Rider:C++ 测试的单元测试会话

有关单元测试会话的更多信息,请参阅 单元测试会话

执行过程

JetBrains Rider 提供了多种执行单元测试的方法。 无论您选择哪种方式,执行进度、测试结果和输出都会显示在 单元测试窗口 中。

当测试在单元测试会话中运行时,当前正在执行的测试旁会显示进度图标。 您可以同时运行多个单元测试会话。 但是,当调试测试时,一次只能执行一个测试会话。

当您运行或调试单元测试时,JetBrains Rider 使用项目属性中指定的 命令工作目录 配置参数。 要访问这些属性,请在解决方案资源管理器中右键单击项目并选择 属性 | [构建配置] | 测试运行器

属性 | [构建配置] | 测试运行器

分析执行结果和输出

测试执行完成后,结果会在 单元测试窗口 中可视化。

输出窗格(您可以使用工具栏上的 切换输出位置 切换输出位置 按钮将其放置在右侧或底部)显示所选测试的输出。

默认情况下,JetBrains Rider 根据输出区域的当前宽度换行输出中的长行。 如果需要,您可以通过清除 JetBrains Rider 设置 在单元测试会话输出中换行 页面上的 构建、执行、部署 | 单元测试 复选框来选择不换行长行 Ctrl+Alt+S

使用工具栏上的 分组依据 选择器更改测试的分组方式——您可以选择选择器上部的预定义分组模式(如测试层次结构、项目结构等),也可以使用选择器下部选择一组自定义分组属性。

在状态栏中,您可以看到会话中的测试总数以及不同状态的测试数量:

单元测试过滤器

默认情况下,会显示所有状态的测试,但您可以单击相应的图标按状态过滤测试。

单元测试会话窗口中每个测试的状态通过以下图标之一显示:

ThemedIcon.RunningTest.Screen.(Gray).png

单元测试当前正在执行

ThemedIcon.TestPending.Screen.(Gray).png

单元测试已安排在当前运行中执行

单元测试未执行

ThemedIcon.Success.Screen.(Gray).png

单元测试在上次测试运行中通过

ThemedIcon.Error.Screen.(Gray).png

单元测试在上次测试运行中失败

ThemedIcon.Ignore.Screen.(Gray).png

单元测试在上次测试运行中被忽略

icon_inconclusive_tests.png

单元测试已启动,但 JetBrains Rider 无法读取测试运行器输出。 这通常发生在您中止测试执行时,但也可能是测试运行器中发生错误的迹象。

相同的图标用于显示分组项目的状态。

这些图标还用于每个会话的选项卡上,以显示会话的整体执行结果。

测试会话树上方的相应图标显示每种状态的测试数量。 ThemedIcon.UnitSession.Screen.(Gray).png 图标显示会话中的测试总数。

使用这些图标,您可以过滤树,仅显示对应状态的测试。

当您的焦点在单元测试窗口中时,您可以使用简化的快捷键执行单元测试操作。 例如,您可以使用 Ctrl+D 代替 Ctrl+;, D 调试选定的测试。 以下是单元测试窗口中可用的额外快捷键的完整列表:

  • Shift+Enter运行所选测试

  • Ctrl+D调试所选测试

  • Ctrl+Y运行当前会话

  • Alt+Shift+Insert创建新会话

  • Ctrl+Alt+Insert将选定的测试追加到会话

  • Delete移除所选测试

  • Ctrl+L运行解决方案中的所有测试

最后修改日期: 2025年 9月 26日