了解单元测试工具和环境
GitHub Copilot Chat 可用于根据你指定的代码推荐单元测试。 例如,如果指定方法签名和正文,GitHub Copilot Chat 可以推荐涵盖输入参数和预期输出值的测试用例。 测试项目包含几个测试用例后,你可以使用 GitHub Copilot 为其他测试用例生成代码补全建议。 使用代码行补全功能生成单元测试可减少重复过程,并帮助确保代码经过全面测试。
GitHub Copilot Chat 还可以使用代码的上下文和语义来推荐确保函数正常运行的断言。 还可以帮你为可能难以手动识别的边缘情况和边界条件编写测试用例。 例如,GitHub Copilot 可以推荐错误处理、null 值或意外输入类型的测试用例。
重要
生成的测试用例可能未涵盖所有可能的方案。 为确保代码质量,必须进行手动测试和代码评审。
GitHub Copilot 对单元测试的支持
Copilot 可以帮助执行以下测试任务:
- 设置测试框架:获取为项目和语言配置正确的测试框架和 VS Code 扩展的帮助。
- 生成测试代码:创建涵盖应用程序代码的单元测试、集成测试和端到端测试。
- 处理边缘事例:生成全面的测试套件,以覆盖边缘事例和错误条件。
- 修复失败的测试:接收修复测试失败的建议。
- 保持一致性:个性化 Copilot 以生成遵循项目编码做法的测试。
设置测试框架
为了加速测试工作流,Copilot 可以帮助为项目设置测试框架和 VS Code 扩展。 Copilot 根据项目类型建议适当的测试框架。
打开“聊天”视图。
在
/setupTests聊天输入字段中输入命令。遵循 GitHub Copilot 的指导来配置项目。
使用 GitHub Copilot 编写单元测试
GitHub Copilot 通过生成涵盖代码库的测试代码来帮助编写应用程序代码的测试。 这包括单元测试、端到端测试和边缘事例的测试。
可以使用以下 GitHub Copilot 工具生成单元测试:
- 聊天视图:使用聊天视图使用 Ask、Edit 或代理模式为项目、类或方法生成单元测试。
- 内联聊天:使用内联聊天为所选类或方法生成单元测试。
- 智能操作:使用“生成测试”智能操作为所选代码生成单元测试,而无需编写提示。
- 代码行完成:使用代码行完成来建议为现有测试用例添加单元测试。
修复失败的测试
Copilot 与 Visual Studio Code 中的测试资源管理器集成,有助于修复失败的测试。
在测试资源管理器中,将鼠标悬停在失败的测试上。
选择 “修复测试失败 ”按钮(sparkle 图标)
查看并应用 Copilot 的建议修复。
此外,也可以:
打开“聊天”视图。
输入
/fixTestFailure斜杠命令。根据 Copilot 的建议修复测试问题
小窍门
代理模式在运行测试时监视测试输出,并自动尝试修复并重新运行失败的测试。
保持一致性
如果你的组织具有特定的测试要求,则可以自定义 Copilot 如何生成测试,以确保它们符合你的标准。 通过提供自定义说明来定制 Copilot 生成测试的方式。 例如:
- 指定首选测试框架
- 定义测试的命名约定
- 设置代码结构首选项
- 请求特定的测试模式或方法
Visual Studio Code 对单元测试的支持
若要在 Visual Studio Code 中创建和运行 C# 单元测试,需要以下资源:
- .NET 8.0 SDK 或更高版本。
- 适用于 Visual Studio Code 的 C# 开发工具包扩展。
- 已添加到项目的测试框架包。
C# 开发工具包对单元测试的支持
适用于 Visual Studio Code 的 C# 开发工具包扩展提供了一组丰富的功能,可帮助你创建和管理 C# 项目的单元测试。 它包括以下功能:
- 测试资源管理器 - 一个树状视图,用于显示工作区中的所有测试用例。
- 运行/调试测试用例 - 用于运行和调试测试用例的功能。
- 查看测试结果 - 用于查看测试结果的功能。
- 测试命令 - 用于运行所有测试、运行失败的测试等测试的命令。
- 测试设置 - 专用于测试的设置。
- 测试框架包
C# 开发工具包支持以下测试框架:
- xUnit
- NUnit
- MSTest
使用 C# 开发工具包可以创建测试项目、添加测试框架包和管理单元测试。
启用测试框架
Visual Studio Code 中的“命令面板”提供了为项目启用测试框架的最简单方法。 可以通过以下方式打开“命令面板”:
- 按 Ctrl + Shift + P 键 (Windows/Linux) 或 Cmd + Shift + P (macOS)。
- 打开“视图”菜单,然后选择“命令面板”。
- 打开解决方案资源管理器视图,右键单击解决方案文件夹,然后选择“新建项目”。 选择此选项后,系统将打开“命令面板”,其中已选择“.NET:New Project...”命令。
以下部分介绍如何使用“命令面板”为 C# 项目启用测试框架。
xUnit
打开命令面板并选择“.NET:New Project...”然后选择“xUnit 测试项目”,并提供新项目的名称和位置。 此命令将创建一个使用 xUnit 作为测试库的新项目和目录,并通过将以下 <PackageReference /> 元素添加到项目文件来配置 Test Runner。
Microsoft.NET.Test.SdkxUnitxunit.runner.visualstudiocoverlet.collector
在终端中,可以运行以下命令:
dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]
NUnit
打开命令面板并选择“.NET:New Project...”然后选择“NUnit3 测试项目”,并提供新项目的名称和位置。 此命令将创建一个使用 NUnit 作为测试库的新项目和目录,并通过将以下 <PackageReference /> 元素添加到项目文件来配置 Test Runner。
Microsoft.NET.Test.SdkNUnitNUnit3TestAdapter
在终端中运行以下命令:
dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]
MSTest
打开命令面板并选择“.NET:New Project...”然后选择“MSTest 测试项目”,并提供新项目的名称和位置。 此命令将创建一个使用 MSTest 作为测试库的新项目和目录,并通过将以下 <PackageReference /> 元素添加到项目文件来配置 Test Runner。
Microsoft.NET.Test.SdkMSTest.TestAdapterMSTest.TestFrameworkcoverlet.collector
在终端中运行以下命令:
dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]
使用 GitHub Copilot Chat 在 Visual Studio Code 中开发单元测试
Visual Studio Code 和 GitHub Copilot Chat 的组合为 C# 项目创建和运行单元测试提供了强大的环境。
单元测试过程可以分为三个阶段:
- 使用 Visual Studio Code 为单元测试创建测试项目。
- 使用 GitHub Copilot Chat 为 C# 项目开发单元测试用例。
- 使用 Visual Studio Code 和 C# 开发工具包运行和管理单元测试。
创建测试项目
需要创建一个将用于保存单元测试的测试项目。 可以使用 Visual Studio Code 来完成以下任务:
使用“命令面板”创建使用指定测试框架的测试项目。
使用集成终端添加对要测试的项目的引用。
此过程将创建一个新项目,并为所选框架配置测试运行程序。
使用 GitHub Copilot Chat 生成单元测试用例
GitHub Copilot Chat 可用于帮助你为测试框架编写单元测试用例。 Copilot Chat 可识别你的测试框架和编码风格并生成匹配的代码片段。 可以使用 Copilot Chat 完成以下任务:
根据编辑器中打开的代码或编辑器中突出显示的代码片段,为测试框架编写单元测试用例。 Copilot 可识别你的测试框架和编码风格并生成匹配的代码片段。
为可能难以手动识别的边缘情况和边界条件识别和编写测试用例。 例如,Copilot 可以建议错误处理、null 值或意外输入类型的测试用例。
根据代码的上下文和语义建议确保函数正常运行的断言。 例如,生成断言以确保函数输入参数有效。
在要求 Copilot Chat 生成单元测试用例时,请考虑以下场景:
如果单个方法在编辑器中完全可见,可以要求 Copilot Chat 通过键入
Write a unit test for the method in the #editor来为该方法生成单元测试。如果有多个可见方法或预期方法超出了编辑器中可见的范围,请选择要为其生成单元测试的代码,然后询问 Copilot:
#selection write a unit test for this code。
在 Visual Studio Code 中运行和管理单元测试
Visual Studio Code 和 C# 开发工具包提供了一组丰富的功能,可帮助你运行和管理 C# 项目的单元测试。 可以使用测试资源管理器运行/调试测试用例、查看测试结果以及管理测试用例。
运行/调试测试用例:C# 开发工具包在类和方法定义的左侧生成快捷方式(绿色启动按钮)。 若要运行目标测试用例,请选择绿色启动按钮。 还可以右键单击此按钮以查看更多选项。
测试资源管理器:测试资源管理器是一个树状视图,用于显示工作区中的所有测试用例。 可以选择 Visual Studio Code 左侧活动栏上的烧杯形状按钮将其打开。 还可以运行/调试测试用例,并在此查看其测试结果。
查看测试结果:运行/调试测试用例后,相关测试项的状态会在编辑器效果和测试资源管理器中更新。 可以选择堆栈跟踪中的链接以导航到源位置。
Visual Studio Code 测试命令:可以通过在命令面板中搜索 Test: 找到测试命令(例如,“运行所有测试”)。
Visual Studio Code 测试设置:可以通过在“设置”编辑器中搜索“测试”来找到特定于测试的 Visual Studio Code 设置。
总结
GitHub Copilot Chat 可用于根据你指定的代码推荐单元测试。 例如,如果指定方法签名和正文,GitHub Copilot Chat 可以推荐涵盖输入参数和预期输出值的测试用例。 测试项目包含几个测试用例后,你可以使用 GitHub Copilot 为其他测试用例生成代码补全建议。 使用代码行补全功能生成单元测试可减少重复过程,并帮助确保代码经过全面测试。
GitHub Copilot Chat 还可以使用代码的上下文和语义来推荐确保函数正常运行的断言。 还可以帮你为可能难以手动识别的边缘情况和边界条件编写测试用例。 例如,GitHub Copilot 可以推荐错误处理、null 值或意外输入类型的测试用例。