点击上方“DotNet NB”关注公众号

回复“1”获取开发者路线图

图片

学习分享 丨作者 / 郑 子 铭    

这是DotNet NB 公众号的第238篇原创文章

原文 | McKenna Barlow

翻译 | 郑子铭

GitHub Copilot 的 .NET 测试功能让您无需离开代码即可快速便捷地生成高质量的单元测试。今天,我们很高兴地宣布,此功能现已在 Visual Studio 2026 v18.3 中正式发布。

此版本将GitHub Copilot .NET 测试带给所有人,它具有更丰富的 IDE 集成、更自然的提示以及新的入口点,使单元测试生成变得轻松直观。

基于实际使用情况和用户反馈,此次正式版发布旨在消除操作障碍,帮助开发者只需几次交互即可从代码编写到测试完成,从而建立信心。如果您已在 Visual Studio Insiders 中试用过此功能,则此版本直接基于您的反馈进行改进。如果您是首次体验此功能,现在正是最佳时机。

header-image

专为单元测试而构建的人工智能

GitHub Copilot 的 .NET 测试功能专为单元测试而设计,它内置了对解决方案结构、测试框架和构建系统的感知能力。它采用端到端的测试工作流程,而不是单一的响应提示。

您可以根据任务需要生成测试,测试范围可以是单个成员、类、文件、整个项目、完整解决方案,甚至是当前的 Git 差异。GitHub Copilot 测试会根据该范围来确定要生成哪些测试、如何组织测试以及如何在 Visual Studio 中执行它们。该代理还支持您在 Copilot Chat 中选择的任何模型,让您在利用专用测试工作流程的同时,也能使用您偏好的模型。

prompt-image-intro

当您发起测试请求时,GitHub Copilot 会进行测试:

  • 生成针对您所选代码的单元测试

  • 自动构建并运行这些测试

  • 检测故障并尝试修复它们

  • 反复运行直到找到稳定的起点。

在此过程中,代理会使用您的项目配置和选择的测试框架,以确保在 Visual Studio 中正确组织、发现和执行测试。

测试生成完成后,Copilot 会提供一个结构化的摘要,帮助您了解发生了哪些变化:

  • 创建或修改的测试文件和项目

  • 前后对比覆盖信息

  • 通过/失败信号和不稳定情况

  • 对可测试性差距的洞察

  • 直接提供生成的测试用例链接,以便您可以立即查看和迭代。

这种方法缩短了编写代码和验证代码之间的反馈周期,帮助您更有信心地推进项目。这一切都取决于您与代理的交互方式。第一步很简单,只需告诉 GitHub Copilot 您想要测试的内容即可。

更自然、更自由的提示

GitHub Copilot 的 .NET 测试功能现在支持自由格式提示,让您可以更轻松地用自己的语言描述测试内容。您仍然需要使用 <test-agent-name> 来指定测试代理@Test,但不再受限于固定的命令格式。

您可以使用自然语言编写提示,代理将解释您的意图,同时在后台处理测试生成、执行和恢复。

使用自由提示,您可以

  • 可以精确引用任何代码,也可以模糊引用。
    “@Test为我的核心业务逻辑生成单元测试”
    “ @TestFoo类”
    “@Test请求解析逻辑”

  • 请提及您当前的 Git 更改
    “@Test为我当前的更改编写单元测试”
    “ @Test #git_changes”

  • 要求修复特定或所有失败的测试
    “@Test修复我失败的测试”

  • 要求达到特定的目标代码覆盖率。
    “@Test类 Bar,目标代码覆盖率 80%”

  • 明确测试偏好和惯例
    “@Test使用 xUnit 和 FluentAssertions 生成测试”

对于需要明确指定作用域的场景,仍然支持结构化语法:

  • @Test #
    可以是成员、类、文件、项目、解决方案或 Git 差异。

这种提示的灵活性使得表达意图更加容易,无论您是想扩大覆盖范围、稳定失败的测试,还是生成与团队现有约定一致的测试。

新的就业途径,让您在工作中也能轻松找到工作机会。

GitHub Copilot 的 .NET 测试功能设计得易于查找和使用,以便生成单元测试能够自然地融入您现有的开发工作流程。

您始终可以通过在 Copilot Chat 中发起提示来直接调用测试体验@Test。此外,新的入口点会从 IDE 中熟悉的位置显示相同的工作流程,帮助您在不改变工作方式的情况下发现和使用该功能。

在编辑器中单击鼠标右键

  • 右键单击 → 副驾驶操作 → 生成测试

  • 作用域是根据您右键单击的位置推断出来的,与其他Copilot 操作(例如,成员、类或文件)的行为相同。

  • 该命令将启动专门用于 C# 项目的测试环境,并@Test自动应用相应的上下文。

right-click

副驾驶聊天破冰

  • 选择与编写单元测试相关的提示会在编辑器焦点位于 C# 代码时启动测试代理。

  • 默认情况下,提示符会自动填充内容@Test,其范围限定于您的活动文档。

icebreaker-updated

入门

先决条件: Visual Studio 18.3、C# 代码和付费的 GitHub Copilot 许可证。

  1. 在 Visual Studio 18.3 中打开您的 C# 项目或解决方案,并确保其生成过程中没有错误,以简化流程。

  2. 新建一个 Copilot 聊天主题,并在主题开头输入您的请求@Test。您可以使用自然语言或如上所示的结构化语法来定义您的请求。

prompt-image-ga

  1. 在聊天窗口中,选择“发送”。GitHub Copilot 的 .NET 测试功能随后将启动一个迭代过程。Copilot 将分析您的代码,如果测试项目不存在,则会创建一个。然后,它会自动生成测试、构建并运行它们。

generating-tests-ga

  1. 测试资源管理器会在测试生成时显示结果。如果测试资源管理器没有自动打开,您可以选择“测试”→“测试资源管理器”来打开它。

  2. 测试生成完成后,GitHub Copilot 测试将在 Copilot Chat 中提供摘要。

summary-ga

如需了解更多使用信息,请查看我们的入门文档。

接下来会发生什么?

GitHub Copilot .NET 测试的正式版发布,体现了我们从开发者在实际项目中使用该功能所获得的经验。早期用户的反馈直接促成了提示、功能发现以及测试工作流程与日常开发流程融合方面的改进。

正式发布是一个重要的里程碑,但这并非旅程的终点。我们将继续开展用户研究并收集反馈,以了解开发者如何在实际场景中使用 GitHub Copilot 进行 .NET 测试,尤其是在请求规模和复杂性不断增长的情况下。

我们正在积极探索的一个领域是针对更高级测试需求的规划阶段。对于范围更广或需求更具体的情况,开发人员希望在前期拥有更大的控制权,包括能够明确意图、确认假设,并在生成测试之前审查拟定方案。我们正在研究如何将这种体验直接集成到 Visual Studio 中,以便更好地支持复杂的工作流程和精确的需求。

如果您有机会试用该工具,我们非常希望通过此调查了解您的想法,包括您对当前体验的反馈,以及您希望该功能下一步发展的方向,包括超越 Visual Studio 的功能。

提供反馈

随着人工智能不断影响开发者构建和验证软件的方式,我们的重点仍然是使这些功能实用、可预测,并与您已使用的工具良好集成。

如果您还没试过,不妨在 Visual Studio 18.3 中试试 GitHub Copilot 的 .NET 测试功能,并告诉我们您的想法!您可以使用Visual Studio 中的“提供反馈”按钮,告诉我们哪些功能运行良好,哪些方面需要改进。我们非常感谢您的反馈,它对未来的产品决策起着至关重要的作用。

原文链接

GitHub Copilot Testing for .NET Brings AI-powered Unit Tests to Visual Studio 2026

推荐阅读:

Maomi.MQ 功能强大的 .NET RabbitMQ 消息队列通讯模型框架来了

推荐一个开源的 .NET 工作流引擎和审批流项目

推荐一个基于 .NET 10 开源的 RBAC权限体系的通用后台管理系统

推荐一个基于 .NET 开发的功能强大的权限+可视化流程管理系统

YY-Admin 一个基于 WPF 的现代后端管理系统通用框架

C# 中的 Span 和内存:.NET 中的高性能内存处理

点击下方卡片关注DotNet NB

一起交流学习

图片

▲点击上方卡片关注DotNet NB,一起交流学习

请在公众号后台

回复【路线图】获取.NET 2024开发者路线

回复【原创内容】获取公众号原创内容

回复【峰会视频】获取.NET Conf大会视频

回复【个人简介】获取作者个人简介

回复【年终总结】获取作者年终回顾

回复加群加入DotNet NB 交流学习群

长按识别下方二维码,或点击阅读原文。和我一起,交流学习,分享心得。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐