ReSharper 2025.2 Help

创建单元测试

ReSharper 提供了一种简单而有效的方法来为选定的类创建单元测试:它将创建一个测试类、测试方法,甚至在必要时创建一个新的测试项目。

如果 AI Assistant 已激活,您可以选择为创建的测试生成实际的测试逻辑。

为类创建单元测试

  1. 在编辑器中,将插入符号放置在您想为其创建单元测试的类上。

  2. Control+T C ,或者打开 生成代码 Alt+Insert 菜单并选择 单元测试

  3. 如果您的解决方案包含一个测试项目,其中有一个 与您的类名匹配 的测试类,ReSharper 将使用相应的 实时模板 在该类中添加一个新的测试方法。 请注意,在 2023.3 版本中,使用 AI 生成测试逻辑在这种情况下不受支持。 此问题将在下一个版本中修复。 作为一种解决方法,请重命名现有的测试类。

    否则,将打开 创建单元测试 对话框:

    ReSharper:创建单元测试对话框
  4. 在对话框中,指定测试应如何以及在哪里创建:

    • 测试项目 :输入新项目的名称或从下拉选择器中选择现有的测试项目。

    • 测试框架 :选择一个支持的单元测试框架(NUnit、xUnit 或 MSTest)。 在选择器中,您将看到目标项目或解决方案中已使用的框架版本——建议选择这些版本以保持一致性。 但是,您也可以选择所需框架的最新版本,它将从 NuGet 安装。 该框架将被引用到目标项目中,并且测试类将从与该框架对应的 文件模板 创建。

    • 测试类名 :测试类的名称将根据您可以在 测试类命名约定工具 | 单元测试 | 测试链接器 页面下配置的模式自动建议。 建议使用建议的名称,因为 ReSharper 将使用它在您 在测试之间导航 时链接类及其测试。

    • 使用 AI 生成测试内容 :如果 AI Assistant 已激活,您可以选择为创建的测试生成实际的测试逻辑。

    • 目标(高级) :使用此字段指定创建测试类的文件的自定义相对路径。

    • 命名空间(高级) :使用此字段为创建的测试类指定自定义命名空间。

    • 模板(高级) :使用此字段选择将用于创建测试类的 文件模板

  5. 单击 确定 以创建测试。 如果需要,ReSharper 将创建一个新的测试项目和一个测试类,然后执行以下操作之一:

    • 如果选择了 使用 AI 生成测试内容 ,ReSharper 将在测试类中填充一个或多个测试方法,以检查最初选择的类的逻辑。

      请注意,生成的代码中可能会有一些未解析的符号引用,这是由于缺少项目引用或 using 指令导致的。 在大多数情况下,这些问题很容易解决:在高亮显示的引用上按 Alt+Enter 并选择 导入文件中缺失的引用

    • 否则,ReSharper 将部署 指定的测试方法的实时模板。 输入方法名称以完成模板会话,然后指定您的测试逻辑。

新测试类的文件模板

在创建新的测试类时,ReSharper 使用特定于目标测试框架的 文件模板。 默认情况下,ReSharper 为每个支持的框架提供一个模板:

如果需要,您可以修改这些模板或 为您的测试类创建更多模板。 为了确保您的自定义文件模板适合创建单元测试类,模板的 可用性 必须覆盖具有所需框架的测试项目:

ReSharper:测试类的文件模板

新测试方法的实时模板

在生成测试方法时,ReSharper 部署特定于目标框架的 实时模板。 如果需要,您可以根据需要自定义每个模板。 为此,从菜单中选择 ReSharper | 工具 | 模板资源管理器… ,切换到 实时模板 选项卡,在 作用域 下选择 C#VB.NET ,然后双击所需测试框架的 测试 模板。

ReSharper:单元测试方法的实时模板

用测试主体提及注释测试

在创建测试类时,ReSharper 可以为其添加一个特殊的属性,该属性将测试与其主体链接,并允许 在它们之间导航。 默认情况下,ReSharper 使用来自 JetBrains.Annotations[TestSubject] 属性,但如果您希望为此目的使用其他属性,请相应地配置 测试类模板 ,然后在 ReSharper 选项 的 工具 | 单元测试 | 测试链接器 页面上指定此属性 Alt+R, O

同样在该 选项 页面上,您可以使用 使用测试主体提及注解 选择器选择 何时添加注释

此功能在以下语言和技术中 受支持

语言:C#

语言:VB.NET

语言:C++

语言:ASP.NET

语言:Razor

语言:XAML

语言:Resx

语言:构建脚本

语言:SQL

此功能在 C# 中可用

此功能在 Visual Basic 中可用

功能在 C++ 中不可用

此功能在 ASP.NET 中不可用

此功能在 Razor 中不可用

此功能在 XAML 中不可用

此功能在资源文件中不可用

此功能在构建脚本文件中不可用

此功能在 SQL/NoSQL 文件和注入中不可用

此处提供的说明和示例针对在 C# 中使用该功能。 有关其他语言的更多信息,请参阅 语言和框架 部分中的相应主题。

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