查看 Visual Studio Code 对单元测试的支持情况

已完成

在使用 GitHub Copilot 生成单元测试之前,项目需要一个工作测试框架和一种在Visual Studio Code内运行测试的方法。 Visual Studio Code、.NET SDK 和 C# 开发工具包扩展提供托管单元测试的环境,同时GitHub Copilot侧重于生成和优化测试代码。 了解基础环境使GitHub Copilot工作流更易于遵循。

本单元检查支持单元测试的Visual Studio Code功能和 C# 工具。 后面的单元侧重于GitHub Copilot如何生成和维护在此环境中运行的测试代码。

Visual Studio Code对单元测试的支持

若要在 Visual Studio Code 中创建和运行 C# 单元测试,需要以下资源:

  • .NET 8.0 SDK 或更高版本。
  • 用于Visual Studio Code的 C# 开发工具包扩展。
  • 您的项目中已添加一个测试框架包。

C# 开发工具包对单元测试的支持

C# 开发工具包扩展提供了在本模块中使用的测试功能:

  • 测试资源管理器:显示工作区中的所有测试用例的树视图。 可以通过选择活动栏上的 beaker 图标来打开测试资源管理器。
  • 运行/调试测试用例:绿色播放按钮显示在每个测试类和方法旁边的编辑器中。 右键单击播放按钮以查看更多选项。
  • 查看测试结果:测试运行后,结果将反映在编辑器修饰和测试资源管理器中。 选择堆栈跟踪中的链接将导航到源位置。
  • 测试命令:命令面板中提供了类似 Test: Run All Tests 命令。 搜索 Test: 以查看完整列表。
  • 测试设置:设置编辑器中提供了控制测试发现和运行时行为的设置。 搜索 Testing 以查看可用选项。

C# 开发工具包支持以下测试框架:

  • xUnit
  • NUnit
  • MSTest

使用命令面板创建测试项目

Visual Studio Code中的命令面板提供了创建使用受支持框架的测试项目的最简单方法。 可以通过以下方式打开“命令面板”:

  • Ctrl + Shift + P 键 (Windows/Linux) ) 或 Cmd + Shift + P (macOS)。
  • 打开 “视图 ”菜单,然后选择 “命令面板”。
  • 打开解决方案资源管理器视图,右键单击解决方案文件夹,然后选择 New Project。 选择此选项后,系统将打开“命令面板”,其中已选择“.NET:New Project...”命令。

以下部分演示如何为每个受支持的框架创建测试项目。

xUnit

打开命令面板并选择“.NET:新建Project...,选择 xUnit Test Project,然后提供新project的名称和位置。 此命令创建使用 xUnit 作为测试库的项目,并将以下 <PackageReference /> 元素添加到项目文件来配置测试运行程序:

  • Microsoft.NET.Test.Sdk
  • xUnit
  • xunit.runner.visualstudio
  • coverlet.collector

在集成终端中,可以将测试项目中的引用添加到所测试的项目:

dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

NUnit

打开命令面板并选择“.NET:新建Project...,选择NUnit3 测试Project,然后提供新project的名称和位置。 此命令创建使用 NUnit 作为测试库的项目,并将以下 <PackageReference /> 元素添加到项目文件:

  • Microsoft.NET.Test.Sdk
  • NUnit
  • NUnit3TestAdapter

从终端添加对正在测试的项目的引用:

dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

MSTest

打开命令面板并选择“.NET:新建Project...,选择MSTest 测试Project,然后提供新project的名称和位置。 此命令将以下 <PackageReference /> 元素添加到项目文件:

  • Microsoft.NET.Test.Sdk
  • MSTest.TestAdapter
  • MSTest.TestFramework
  • coverlet.collector

从终端添加对正在测试的项目的引用:

dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

在 Visual Studio Code 中运行和管理单元测试

测试项目存在后,Visual Studio Code和 C# 开发工具包提供了几种运行和管理测试的方法:

  • 从编辑器运行/调试:选择类或方法旁边的绿色播放按钮以运行该目标。 右键单击“播放”按钮可查看“运行测试和调试测试”等选项。
  • 测试资源管理器:从树视图中运行或调试单个测试、组或完整套件。 测试结果(包括通过/失败图标和持续时间)显示在每个项旁边。
  • 查看测试结果:编辑器修饰和测试资源管理器都反映运行后每个测试的当前状态。 选择堆栈跟踪中的链接以跳转到失败行。
  • 测试命令:从命令面板中使用诸如 Test: Run All TestsTest: Debug Failed TestsTest: Show Output 等命令。
  • 测试设置:在“设置”编辑器中搜索 Testing 以配置在保存或测试结果格式设置时自动运行等行为。

使用 GitHub Copilot 的单元测试工作流

将Visual Studio Code与GitHub Copilot相结合时,单元测试过程分为三个阶段:

  1. 设置环境:使用 Visual Studio Code、.NET SDK 和 C# 开发工具包创建测试项目并引用正在测试的项目。 你已完成本单元中的此阶段。
  2. 生成测试代码:使用聊天视图中的 GitHub Copilot 为你的应用程序代码生成单元测试。 下一个单元涵盖此阶段。
  3. 运行和维护测试:使用测试资源管理器和 C# 开发工具包运行测试,然后使用GitHub Copilot扩展覆盖范围并修复失败的测试。

其余单位侧重于支持第 2 和第 3 阶段的GitHub Copilot工具。