ReSharper 2025.2 Help

C++ 单元测试助手

ReSharper 帮助您直接在 Visual Studio 中发现、运行和调试以下单元测试框架的单元测试:

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

在当前文档中发现测试

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

ReSharper 在编辑器中为单元测试显示不同的指示器

ThemedIcon.UnitTestingOptionsPage.Screen.(Gray).png

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

已通过

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

已失败

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

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

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

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

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

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

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

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

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

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

ReSharper 将 单元测试资源管理器窗口 添加到 Visual Studio(ReSharper | 单元测试 | 单元测试ReSharper | Windows | 单元测试 ,或 Control+Alt+T)。 使用此窗口,您可以在整个解决方案中探索并运行或调试单元测试。 请注意,项目中的单元测试只有在项目构建后才会出现在窗口中。 当前打开文件中的测试会自动更新,新创建的测试会立即出现在单元测试资源管理器中。

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

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

  • 通过双击视图中的测试导航到其源代码。

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

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

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

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

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

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

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

  • 要从解决方案资源管理器或类视图中运行或调试测试,请选择一个或多个包含测试的项目(文件、文件夹、项目),然后使用 运行单元测试 运行单元测试 Control+T R/调试单元测试 调试单元测试 Control+T D 命令,这些命令也可以在主菜单(ReSharper | 单元测试 )和上下文菜单中找到。

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

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

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

单元测试会话

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

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

执行过程

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

当测试在单元测试会话中运行时,执行进度会显示在单元测试会话窗口工具栏下方的状态栏中,并且进度图标会显示在当前正在执行的测试旁边。 您可以同时运行多个单元测试会话。 但是,当调试测试时,一次只能执行一个测试会话。

如果需要,您可以在工具栏上启用 跟踪正在运行的测试 ThemedIcon.TrackRun.Screen.(Gray).png 选项。 如果启用,测试树中的选择会自动切换到当前正在运行的测试,并且输出面板在执行期间始终显示当前测试的输出。

您还可以启用 运行测试时自动滚动输出 ThemedIcon.ScrollToBottom.Screen.(Gray).png 选项,以便在测试运行时跟随测试的输出。

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

默认情况下,不使用 命令参数 属性(调试 | 本地 Windows 调试器 | 命令参数)。 要在测试执行中使用它,请在 ReSharper 选项 工具 | 单元测试 | 测试框架 | C++ 测试 页面上选择相应的复选框 Alt+R, O

如果在项目属性中未指定执行设置(例如,在库项目、“打开文件夹”或 CMake 项目中),您可以在 ReSharper 选项的 工具 | 单元测试 | 测试框架 | C++ 测试 页面中定义它们。

分析执行结果和输出

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

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

默认情况下,ReSharper 根据输出区域的当前宽度换行长行。 如果需要,您可以通过清除 ReSharper 选项 工具 | 单元测试 页面上的 在单元测试会话输出中换行长行 复选框来选择不换行长行。

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

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

单元测试筛选器

默认情况下,会显示所有状态的测试,但您可以单击相应的图标按状态筛选测试。 您还可以 Ctrl 单击多个图标以显示不同状态的测试。

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

ThemedIcon.RunningTest.Screen.(Gray).png

单元测试当前正在执行

ThemedIcon.TestPending.Screen.(Gray).png

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

ThemedIcon.StatusUnknown.Screen.(Gray).png

单元测试未执行

ThemedIcon.Success.Screen.(Gray).png

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

ThemedIcon.Error.Screen.(Gray).png

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

ThemedIcon.Ignore.Screen.(Gray).png

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

ThemedIcon.StatusAborted.Screen.(Gray).png

单元测试在上次测试运行中被中止

ThemedIcon.StatusInconclusive.Screen.(Gray).png

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

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

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

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

使用这些图标,您可以筛选树,仅显示处于相应状态的测试。

配置测试运行器

单元测试执行变量,例如命令、其参数、工作目录和环境变量,通常在项目属性(项目属性 | 配置属性 | 调试 )中指定,ReSharper 将从中获取它们。
但是,如果这些属性未在其中指定(例如,在库项目、“打开文件夹”或 CMake 项目中),您可以在 ReSharper 选项 工具 | 单元测试 | 测试框架 | C++ 测试 页面 Alt+R, O 中定义执行设置。

您还可以在该页面上使用 合并环境 标志。 如果选中,ReSharper 将把 环境 字段中指定的环境变量添加到来自 Visual Studio 的环境变量中。 如果未选中,则仅使用来自 Visual Studio 的环境变量。

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