使用适用于 .NET 的 GitHub Copilot 测试生成和运行单元测试

本文介绍如何使用适用于 .NET 的 GitHub Copilot 测试创建、运行和测试 C# 代码。

尽管 Copilot 可以生成单元测试,但可以通过在 Visual Studio 中使用适用于 .NET 的 GitHub Copilot 测试获得额外的测试功能,其中包括:

  • 单元测试是在解决方案中的单独项目中生成的。
  • Copilot 基于 C# 编译器和语言语义生成具有确定性的测试,因此断言和边缘案例是可预测和类型安全的。
  • GitHub Copilot 在测试生成之后执行单元测试。 如果存在错误,GitHub Copilot for .NET 中的单元测试功能会尝试识别和修复错误,然后重新运行测试。
  • GitHub Copilot 测试使用测试资源管理器运行测试。

适用于 .NET 的 GitHub Copilot 测试仅使用 MSTest、NUnit 和 xUnit 框架为 C# 项目生成测试。

先决条件

若要开始,需要:

小窍门

为了获得最佳体验,我们建议使用付费的 Copilot 订阅,以避免潜在的限制,并确保稳定的访问。

生成和运行测试

  1. 打开需要新测试的现有 C# 项目,或创建新的 C# 项目。

    如果创建新项目,可以使用 Bank 示例代码测试该功能。 将 ‘为 .NET 创建和运行单元测试’ 中的起始示例代码复制到 Program.cs

  2. 构建项目。

    确保项目生成时不会出错以简化该过程。

  3. 通过选择“GitHub Copilot 聊天”按钮打开 Copilot 聊天。

  4. 在聊天窗口中使用以下语法启动 GitHub Copilot 测试并生成测试:

    @test #target
    

    其中 #target 可以是解决方案、项目、文件、类或成员的名称。

    对于示例 Bank ,可以键入 @test #BankAccount并指定类名。

    用于生成测试的命令的屏幕截图。

  5. 在“聊天”窗口中,选择“ 发送”。

    适用于 .NET 的 GitHub Copilot 测试启动一个迭代过程,用于分析代码、为单元测试创建新项目、生成测试、生成和运行测试。

    测试生成是一个长时间运行的进程。 可能需要一段时间,具体取决于目标的范围(文件、项目、解决方案等)。

    Copilot 启动测试生成时的屏幕截图。

    生成单元测试后,测试将显示在解决方案中的单独测试项目中。

    生成的示例测试的屏幕截图。

    测试资源管理器显示结果。 如果 GitHub Copilot 测试未自动打开测试资源管理器,请选择 “测试>测试资源管理器”。

    测试资源管理器输出的屏幕截图。

    此时,可以手动使用测试资源管理器继续运行测试,或与 Copilot 聊天了解测试结果。 您还可以使用 Copilot 来调试失败的测试。 有关详细信息,请参阅 调试单元测试