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报告(扩展、实验性)
- 需要覆盖率数据: 代码覆盖率 (扩展)
- 需要进行崩溃或挂起诊断:崩溃和挂起转储(扩展)
- 需要在运行期间记录屏幕: 诊断 (扩展,实验性)
- 需要部署和启动打包应用测试主机: 测试主机部署 (扩展,实验性)
- 需要通过
Microsoft.Extensions.Logging路由平台日志:Microsoft.Extensions 集成(扩展,实验性) - 需要重试失败的测试: 重试 (扩展)
- 需要热重载支持:热重载 (扩展)
- 需要 Microsoft Fakes 支持:Microsoft Fakes(扩展)
- 需要 OpenTelemetry 跟踪和指标:OpenTelemetry(扩展)
- 遥测数据收集和选择退出: 遥测 (扩展)
内置功能
这些功能是核心平台的一部分,不需要其他 NuGet 包。
向终端报告状态和进度报告:输出模式、ANSI 支持和进度指示器。
扩展功能
这些功能需要安装 NuGet 包。
生成测试报告文件(TRX、HTML、JUnit、CTRF、Azure DevOps、GitHub Actions)。
在测试执行期间收集代码覆盖率数据。
在测试主机崩溃或挂起时收集进程转储文件。
在测试运行期间通过 OpenTelemetry 发出跟踪和指标。
使用可配置策略重试失败的测试。
运行支持快速迭代的热重载测试。
运行使用 Microsoft Fakes 创建存根和填充码的测试。
遥测收集。 了解如何选择退出以及收集的数据。
诊断 (MTP 2.3.0 中引入的实验性)
捕获可用于诊断运行过程的证据,例如使用录像工具录制屏幕。
测试主机部署 (MTP 2.3.0 中引入的实验性)
控制部署和启动测试主机的方式和位置,例如部署和启动打包应用测试主机。
Microsoft.Extensions 集成(实验性功能,在 MTP 2.3.0 中引入)
将平台和扩展的诊断信息接入应用程序已在使用的 Microsoft.Extensions.* 库中,例如通过 Microsoft.Extensions.Logging 管道转发日志。