诊断扩展

本文列出并介绍与诊断功能相关的所有 Microsoft Testing Platform 扩展。

内置选项

以下平台选项提供了对测试应用进行故障排除非常有用的信息:

  • --info
  • --diagnostic
  • ⁠-⁠-⁠diagnostic-⁠filelogger-⁠synchronouswrite
  • --diagnostic-verbosity
  • --diagnostic-output-fileprefix
  • --diagnostic-output-directory

还可以使用环境变量启用诊断日志:

Environment variable name 说明
TESTINGPLATFORM_DIAGNOSTIC 设置为 1 可启用诊断日志记录。
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY 定义详细程度级别。 可用值包括 TraceDebugInformationWarningErrorCritical
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY 诊断日志记录的输出目录,如果未指定,则会在默认的 TestResults 目录中生成该文件。
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX 日志文件名的前缀。 默认为 "log_"
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE 强制内置的文件记录器以同步方式写入日志。 对于在进程崩溃时不想丢失任何日志条目的场景非常有用。 这会降低测试执行速度。

注意

环境变量优先于命令行参数。

故障转储

此扩展可以在进程崩溃时创建故障转储文件。 此扩展作为 Microsoft.Testing.Extensions.CrashDump NuGet 包的一部分提供。

重要

该包采用 Microsoft .NET 库闭源免费使用许可模型。

若要配置故障转储文件生成,请使用以下选项:

选项 说明
--crashdump 在测试主机进程崩溃时生成转储文件。 在 .NET 6.0+ 中受支持。
⁠-⁠-⁠crashdump-⁠filename 指定转储文件的文件名。
--crashdump-type 指定转储文件的类型。 有效值为 MiniHeapTriageFull。 默认为 Full。 有关详细信息,请参阅小型转储的类型

注意

该扩展与 .NET Framework 不兼容,将被无提示忽略。 对于 .NET Framework 支持,可以使用 Sysinternals ProcDump 启用事后调试。 有关详细信息,请参阅启用事后调试:Window Sysinternals ProcDump。 事后调试解决方案还将收集 .NET 的进程崩溃信息,以便在面向 .NET 和 .NET Framework 测试应用程序时避免使用扩展。

挂起转储

使用此扩展可以在给定的超时后创建转储文件。 此扩展作为 Microsoft.Testing.Extensions.HangDump 包的一部分提供。

重要

该包采用 Microsoft .NET 库闭源免费使用许可模型。

若要配置挂起转储文件生成,请使用以下选项:

选项 说明
--hangdump 在测试主机进程挂起的情况下生成转储文件。
-⁠-⁠hangdump-⁠filename 指定转储文件的文件名。
--hangdump-timeout 指定生成转储之前的超时。 超时值是采用以下格式之一指定的:
1.5h, 1.5hour, 1.5hours
90m, 90min, 90minute, 90minutes
5400s5400sec5400second5400seconds。 默认为 30m(30 分钟)。
--hangdump-type 指定转储文件的类型。 有效值为 MiniHeapTriageFull。 默认为 Full。 有关详细信息,请参阅小型转储的类型