ReSharper 2025.2 Help

JavaScript 单元测试辅助

ReSharper 帮助您直接在 Visual Studio 中发现并运行 QUnitJasmine 框架的单元测试。

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

配置 JavaScript 单元测试首选项

If you use Jasmine framework, make sure to select the framework version on the 工具 | 单元测试 | 测试框架 | JavaScript 测试 page of ReSharper 选项 Alt+R, O .

默认情况下,当测试开始时,ReSharper 会启动默认的 Web 浏览器以显示来自单元测试框架的输出。 它运行测试并将信息报告回 ReSharper。 如有必要,您可以在 ReSharper 选项的 工具 | 单元测试 | 测试框架 | JavaScript 测试 页面上更改浏览器。 您还可以选择使用 PhantomJS 库运行测试,而无需启动浏览器。 为此,请选择 PhantomJS 并指定 PhantomJS 可执行文件的路径,并在必要时更改默认命令行参数。

您可以为您的测试指定一个自定义 HTML 框架。 该框架兼容 Chutzpah 测试运行器 ,并且可以使用 特殊的 Chutzpah 占位符

使用自定义 HTML 框架

  1. Tick the 启用自定义 HTML 工具 checkbox on the 工具 | 单元测试 | 测试框架 | JavaScript 测试 page of ReSharper 选项 Alt+R, O .

  2. 如果您没有框架文件,您可以创建一个空的 HTML 文件,点击 将默认实现复制到剪贴板 并将默认框架模板粘贴到文件中。

  3. 输入框架文件的文件名或路径。

  4. 使用 测试工具位置 选择器,指定测试运行器应如何处理文件名或路径。

  5. 单击 选项 对话框中的 保存 应用修改,让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置

在当前文档中发现测试

ReSharper 在编辑器中发现所有支持框架的单元测试套件和单个单元测试,并在编辑器中的每个项目旁边添加相应的 操作指示器

以下示例显示了使用 Jasmine 框架创建的单元测试套件:

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

ThemedIcon.UnitTestingOptionsPage.Screen.(Gray).png

该函数是一个可以运行的单元测试。

ThemedIcon.UnitSession.Screen.(Gray).png

该函数是一个单元测试套件,您可以运行其中的测试。

已通过

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

已通过

单元测试套件中的测试在上次执行中已通过。

已失败

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

已失败

单元测试套件中至少有一个测试在上次执行中失败。

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

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

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

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

    • 要运行或调试单个测试或测试套件中的所有测试,请将光标放在测试/测试套件名称上,或放在其声明的任何位置。

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

    • 要运行当前文件中的所有测试,可以选择所有内容或将光标放在测试套件之外。

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

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

从编辑器运行 Jasmine 单元测试套件

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

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

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

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

  • 通过双击视图中的任何测试或测试套件导航到其源代码。

  • 运行 所选测试。

  • 从所选测试和测试套件中 创建单元测试会话 ,并/或将所选项目添加到当前测试会话中。

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

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

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

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

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

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

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

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

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

使用单元测试会话

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

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

执行过程

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

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

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

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

ReSharper:JavaScript 中的单元测试会话

分析执行结果和输出

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

输出窗格(您可以使用工具栏上的 显示输出 显示输出 按钮将其放置在右侧或底部)显示所选测试的输出。 如果测试失败,ReSharper 还会添加有关失败的简要信息和/或显示异常的堆栈跟踪。 您可以使用输出窗格中的可点击链接直接导航到与失败相关的类型和方法。 如果输出显示的链接指向不属于解决方案的文件,您可以单击此链接以在与相应文件类型关联的外部应用程序中打开该文件,或者 Ctrl -单击以在 Visual Studio 中打开它。

默认情况下,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.StatusAborted.Screen.(Gray).png

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

ThemedIcon.StatusInconclusive.Screen.(Gray).png

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

相同的图标也用于显示分组项目(套件、项目等)的状态。

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

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

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

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