适用于 .NET 的 GitHub Copilot 测试是 GitHub Copilot Chat 中集成到 Visual Studio 中的一项新功能。 此功能自动创建、运行和测试整个项目、解决方案、文件、类或成员的 C# 代码。 它专为 C# 开发人员设计,旨在让他们在不手动编写每个测试用例的情况下,快速实现全面的测试覆盖率。 GitHub Copilot 测试可以为 xUnit、NUnit 和 MSTest 测试框架生成测试。
与短期的 Copilot 建议不同,适用于 .NET 的 GitHub Copilot 测试提供了一种引导式的、长时间运行的体验,用于跨代码库生成和管理测试。
先决条件
Visual Studio 2026 预览体验成员版本
C# 项目
使用具有 Copilot 访问权限的 GitHub 帐户登录 Visual Studio
GitHub Copilot 测试适用于任何有效的 GitHub Copilot 订阅,包括个人计划和企业计划。 虽然某些功能可以通过免费的 Copilot 许可证使用,但可能会有使用限制和令牌限制(throttling),特别是在处理较大型解决方案或进行更长时间的会话时。 这些限制由 GitHub 强制实施,可能会影响性能或可用性。
小窍门
为了获得最佳体验,我们建议使用付费的 Copilot 订阅,以避免潜在的限制,并确保稳定的访问。
GitHub Copilot 测试的功能
启用此功能时,GitHub Copilot 测试可通过多种方式与解决方案交互,以生成和验证测试:
- 读: Copilot 分析源代码和项目结构,以了解上下文和依赖项。
- 写: 它根据其建议在你的解决方案中创建或更新测试文件。
- 构建: 该工具触发构建以编译您的代码,并验证生成的测试是否集成正确。
- 执行: 它运行测试来确认他们通过,并提供有关覆盖范围和质量的反馈。
重要
Copilot 测试不会在测试生成过程之外修改生产代码。 所有更改都发生在您的本地开发环境中,您完全掌控,可以查看、接受或放弃建议。
为什么对 .NET 使用 GitHub Copilot 测试?
与与生成测试(如 /tests 命令)相关的更基本 Copilot 功能相比,适用于 .NET 的 GitHub Copilot 测试提供了全面的体验。 GitHub Copilot for .NET 中的单元测试功能提供以下内容:
- 效率: 自动生成、生成和运行适用于大型或小型项目或解决方案的 C# 单元测试。
- 一致性: 确保测试遵循最佳做法和项目标准。 测试是在解决方案中的单独测试项目中创建的,并使用 xUnit、NUnit 和 MSTest 框架生成。
- 集成: 在 Visual Studio 中无缝工作,利用 Copilot 的 AI 功能。
- 可 预见性: Copilot 以确定性方式生成测试,以 C# 编译器和语言语义为基础,因此断言和边缘事例是可预测的且类型安全的。
主要功能
- 自动测试生成: 为单个文件、单个项目中的多个文件或整个解决方案创建测试。
-
基于命令的交互: 使用受支持的命令和参数(在 GitHub Copilot 测试的消息中
/help列出)。 - 结构化提示: 目前不支持自由格式提示,确保可预测且可靠的输出。
安全警告
首次运行适用于 .NET 的 GitHub Copilot 测试时,Copilot 会请求同意在计算机上执行 LLM 生成的代码。 这可能包括安装或还原 NuGet 包和运行测试等作。 如果未授予一般同意,GitHub Copilot 测试会在执行任何此类操作之前提示要求显式批准。
注意
你的同意授予 Copilot 在 Visual Studio 会话中以无提示方式调用任意命令的功能。 Microsoft无法保证这些命令的安全性。 应仅在沙盒环境中启用此开关,并且应采取措施来限制该环境可用的特权。 例如,沙盒环境不应使用云连接的帐户登录到 Windows,沙盒环境不应使用特权 GitHub 帐户登录到 Visual Studio,该帐户具有对非公共存储库的读取访问权限或对生产存储库的写入访问权限。
Troubleshooting
如果在 Copilot Chat 中未看到 @test 该命令,请尝试以下步骤:
验证您的 Visual Studio 构建。 请确保正在运行最新的 Visual Studio 预览体验成员版本,因为此功能目前仅在预览体验成员中可用。
在 工具 > 选项 > GitHub Copilot 中切换设置。 禁用并重新启用 GitHub Copilot 测试设置时,这会刷新集成。
如果@test命令未显示在“聊天”中,并且在切换后问题仍然存在,请通过 Visual Studio 中的帮助>发送反馈报告问题。