创建 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.TestFramework、MSTest.TestAdapter和MSTest.Analyzers核心 MSTest 功能。 -
Microsoft.NET.Test.Sdk用于 VSTest 集成和测试主机支持。 -
Microsoft.Testing.Extensions.CodeCoverage和Microsoft.Testing.Extensions.TrxReport用于 Microsoft.Testing.Platform(MTP) 扩展。
NuGet 包概述
MSTest 功能拆分为多个 NuGet 包:
| Package | Description |
|---|---|
| MSTest.TestFramework | 包含用于定义 MSTest 测试的属性和类。 |
| MSTest.TestAdapter | 包含发现和运行 MSTest 测试的测试适配器。 |
| MSTest.Analyzers | 包含有助于编写高质量测试的分析器。 |
注释
如果要创建一个用作多个测试项目辅助库的测试基础设施项目,请将 MSTest.TestFramework 和 MSTest.Analyzers 直接安装到该项目中。
语言专属教程
关于您首选的 .NET 语言的详细分步教程:
- C# 入门:创建第一个 C# 测试项目并编写基本测试
- F# 入门:使用 MSTest 测试 F# 代码
- Visual Basic 入门:使用 MSTest 测试 Visual Basic 代码
示例项目
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 上查看 |