首先介绍 Visual Studio 中的测试工具

Visual Studio 测试工具可帮助你和你的团队达到并保持高标准的代码卓越性。

注意

Visual Studio 的所有版本均提供单元测试。 其他测试工具(例如 Live Unit Testing 和 IntelliTest)仅可在 Visual Studio Enterprise 版本中可用。 有关版本的详细信息,请参阅比较 Visual Studio IDE

测试资源管理器

“测试资源管理器”窗口可帮助开发人员创建、管理和运行单元测试 。 可以使用 Microsoft 单元测试框架或若干第三方和开源框架之一。

Visual Studio Test Explorer 16.2

Visual Studio 也可扩展,并支持第三方单元测试适配器,如 NUnit 和 xUnit.net。 此外,通过帮助识别在语义上类似的代码块(这可能是常见 bug 修复或重构的备选项),代码克隆功能还同时可以获得高质量的软件。

Third-party test integration

Live Unit Testing

Live Unit Testing 会自动在后台运行单元测试,并在 Visual Studio 代码编辑器中以图形方式显示代码覆盖率和测试结果。

注意

Live Unit Testing 仅在企业版中提供,并且仅支持 .NET 代码。

IntelliTest

IntelliTest 会自动为托管代码生成单元测试和测试数据。 IntelliTest 提高了覆盖率且大大减少了创建和维护新代码或现有代码的单元测试的工作量。

IntelliTest in action

注意

只有企业版提供 IntelliTest。 面向 .NET Framework 的 C# 代码支持它。 当前不支持 .NET Core 和 .NET Standard。

代码覆盖率

代码覆盖率确定正在由编码的测试(例如单元测试)实际进行测试的项目代码的比例。 若要有效防止 Bug,测试应作用于或“覆盖”你的大部分代码。

注意

只有企业版中提供代码覆盖率。

可将代码覆盖率分析应用于托管和非托管(本机)代码。

代码覆盖率是使用测试资源管理器运行测试方法时的一个选项。 结果表将显示在各个程序集、类和方法中运行的代码的百分比。 此外,源代码编辑器会显示已测试的代码。

Microsoft Fakes

Microsoft Fakes 将应用程序的其余部分替换为存根或填充码,有助于隔离受测代码。

注意

Microsoft Fakes 仅在企业版中提供,并且仅支持 .NET 代码。

使用 Playwright 测试用户界面

建议使用 Playwright 进行基于泛型浏览器的 UI 测试。

通过编码的 UI 和 Selenium 进行用户界面测试

编码的 UI 测试提供了一种方法来创建完全自动化的测试,用来验证应用程序用户界面的功能和行为。 它们可在各种技术(包括基于 XAML 的 UWP 应用、浏览器应用和 SharePoint 应用)中自动进行 UI 测试。

注意

编码的 UI 是已弃用的功能。

无论选择最适用的编码 UI 测试还是使用 Playwright 进行的基于泛型浏览器的 UI 测试,Visual Studio 均提供所有所需的工具。