通过


MSTest 入门

创建 MSTest 项目的建议方法是使用 MSTest.Sdk,这是 一种 MSBuild 项目 SDK ,它提供用于使用 MSTest 进行测试的一流体验。 它包括所有建议的默认值,并简化了项目配置。

使用 MSTest.Sdk 创建项目

若要创建 MSTest 项目,请将 Sdk 属性与 MSTest.Sdk 项目文件中的 MSTest 版本一起设置为:

<Project Sdk="MSTest.Sdk/4.1.0">

  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
  </PropertyGroup>

</Project>

注释

4.1.0 以示例的形式提供,可以替换为任何较新版本。

为了简化跨多个测试项目的版本管理,我们建议在解决方案级别的 global.json 文件中指定 SDK 版本:

<Project Sdk="MSTest.Sdk">

  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
  </PropertyGroup>

</Project>
{
    "msbuild-sdks": {
        "MSTest.Sdk": "4.1.0"
    }
}

有关详细信息,请参阅使用 MSBuild 项目 SDK

当你build项目时,将使用标准 NuGet 工作流来还原并安装所有必需的组件。 可以使用与任何其他测试项目相同的工具(例如 dotnet test ,或 Visual Studio)。

小窍门

默认情况下,MSTest.Sdk 将 MSTest 运行程序与 Microsoft.Testing.Platform 配合使用。 有关高级配置选项(如扩展配置文件、切换到 VSTest 或与 Aspire 和 Playwright 集成),请参阅 MSTest SDK 配置

替代方法:使用 MSTest NuGet 包

如果不想使用 MSTest.Sdk,可以使用 MSTest NuGet 元包,其中包括:

  • MSTest.TestFrameworkMSTest.TestAdapterMSTest.Analyzers 核心 MSTest 功能。
  • Microsoft.NET.Test.Sdk 用于 VSTest 集成和测试主机支持。
  • Microsoft.Testing.Extensions.CodeCoverageMicrosoft.Testing.Extensions.TrxReport 用于 Microsoft.Testing.Platform(MTP) 扩展。

NuGet 包概述

MSTest 功能拆分为多个 NuGet 包:

Package Description
MSTest.TestFramework 包含用于定义 MSTest 测试的属性和类。
MSTest.TestAdapter 包含发现和运行 MSTest 测试的测试适配器。
MSTest.Analyzers 包含有助于编写高质量测试的分析器。

注释

如果要创建一个用作多个测试项目辅助库的测试基础设施项目,请将 MSTest.TestFrameworkMSTest.Analyzers 直接安装到该项目中。

语言专属教程

关于您首选的 .NET 语言的详细分步教程:

示例项目

MSTest 团队在 microsoft/testfx 存储库 中维护示例项目,演示各种功能和方案:

Sample Description Link
Simple1 基本 MSTest 测试运行器设置 在 GitHub 上查看
DemoMSTestSdk MSTest SDK 项目设置 在 GitHub 上查看
BlankUwpNet9App 使用 .NET 9 进行 UWP 测试 在 GitHub 上查看
BlankWinUINet9App 使用 .NET 9 进行 WinUI 3 测试 在 GitHub 上查看
NativeAotRunner 本机 AOT 编译 在 GitHub 上查看
RunInDocker 容器化测试执行 在 GitHub 上查看