MTP 附带内置功能,可通过 NuGet 包进行扩展。
使用 Microsoft.Testing.Platform.MSBuild (由 MSTest、NUnit 和 xUnit 运行程序以可传递方式包含)时,安装扩展 NuGet 包是你需要的 — 扩展会自动检测和注册,并且会为你生成入口点。
如果通过设置 <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint> 选择退出自动生成的入口点,则必须通过在 Main 方法中手动注册扩展。 每个插件页面都记录了手动注册调用。
需要 NuGet 包的扩展附带自己的许可模型(有些不太宽松),请务必查看与要使用的扩展关联的许可证。
某些扩展是 实验性的:它们的 API 使用 TPEXP 诊断进行批注,并且可能会在将来的版本中更改,因此必须确认诊断才能使用它们。 实验性扩展在以下列表中标记为 “实验 性”。
从这里开始
根据目标使用以下路径:
- 在一个位置查找命令行开关: MTP CLI 选项参考。
- 为你的测试运行增加功能性:请使用本文中的功能页面。
- 创建自己的扩展:MTP 体系结构、扩展点和服务。
按情景选择
- 需要自定义终端输出: 终端输出 (内置)
- 需要 TRX 或 Azure DevOps 报表:测试报表(扩展)
- 需要GitHub Actions本机输出(日志组、批注和作业摘要):GitHub Actions报表(扩展)
- 需要覆盖率数据: 代码覆盖率 (扩展)
- 需要进行崩溃或挂起诊断:崩溃和挂起转储(扩展)
- 需要在运行期间记录屏幕: 诊断 (扩展,实验性)
- 需要部署并启动已打包的完全信任、UWP 或 AppContainer 测试主机:测试主机部署(扩展;实验性启动器 API)
- 需要复用
Microsoft.Extensions.Configuration、Microsoft.Extensions.Hosting或Microsoft.Extensions.Logging:Microsoft.Extensions 集成(扩展,实验性) - 需要生成编辑器或 IDE 集成: 服务器模式 (内置)
- 需要加载并非编译时引用的扩展:动态扩展加载(内置,可选启用)
- 需要重试失败的测试: 重试 (扩展)
- 需要热重载支持:热重载 (扩展)
- 需要 Microsoft Fakes 支持:Microsoft Fakes(扩展)
- 需要 OpenTelemetry 跟踪和指标:OpenTelemetry(扩展)
- 需要向测试框架或扩展提供 AI 聊天客户端: AI 集成 (扩展、实验性)
- 遥测数据收集和选择退出: 遥测 (扩展)
内置功能
这些功能是核心平台的一部分,不需要其他 NuGet 包。
向终端报告状态和进度报告:输出模式、ANSI 支持和进度指示器。
通过 JSON-RPC 从编辑器、IDE 或其他工具推动测试发现和执行。
当某次运行选择加入时,从 JSON 清单中加载显式声明的扩展程序集。
扩展功能
这些功能需要安装 NuGet 包。
生成测试报告文件(TRX、HTML、JUnit、CTRF、Azure DevOps、GitHub Actions)。
在测试执行期间收集代码覆盖率数据。
在测试主机崩溃或挂起时收集进程转储文件。
在测试运行期间通过 OpenTelemetry 发出跟踪和指标。
AI 集成 (实验性)
向测试框架和扩展提供与提供程序无关的 AI 聊天客户端,包括通过 Azure AI Foundry 提供的客户端。
使用可配置策略重试失败的测试。
运行支持快速迭代的热重载测试。
运行使用 Microsoft Fakes 创建存根和填充码的测试。
遥测收集。 了解如何选择退出以及收集的数据。
诊断 (MTP 2.3.0 中引入的实验性)
捕获可用于诊断运行过程的证据,例如使用录像工具录制屏幕。
测试主机部署(在 MTP 2.3.0 中引入;自 MTP 2.4.0 起提供稳定的包 API;实验性启动器 API;在 MTP 2.5 中引入对 UWP 和 AppContainer 的支持)
控制部署和启动测试主机的方式和位置,包括打包的完全信任、UWP 和 AppContainer 测试主机。
Microsoft.Extensions 集成(实验性;日志记录于 MTP 2.3.0 中引入;配置和托管于 MTP 2.5 预览版中引入)
将 MTP 桥接到你的应用程序已经在使用的 Microsoft.Extensions.* 库,包括配置快照、应用程序拥有的主机和诊断日志转发。