正文:当测试进程突然死亡时,一个红色CI通常只是开始。你需要知道主机消失前哪些测试已完成,哪些中断了。Microsoft.Testing.Platform (MTP) 的崩溃恢复型TRX解决了第一个问题:它在运行期间不断写入完成结果,而不是等待正常关闭。第二个问题由“崩溃序列”产物回答,它会记录已完成和正在进行的测试名。于是,原本不透明的基础设施故障变成了可归档检查的证据。本文的可运行示例制造了一次受控的主机崩溃,并证明部分TRX仍然有效,序列日志也能指向被打断的测试。 从MTP 2.3开始,TRX报告器在执行测试时以流式输出结果。如果宿主进程意外终止,已写入的结果会保留在有效的部分报告中。微软已在其MTP报告指南中说明了这点。区别很重要:只在干净运行后生成报告可能在进程消失时丢失数据;流式报告虽然无法恢复从未完成的结果,但能保留已完成的工作。 我配合TRX使用两个稳定的MTP崩溃诊断选项:`--crashdump --crashdump-type Mini --crash-sequence on`。转储文件可用于更深层调试,而序列日志更小,记录测试进度,能识别正在运行的测试。微软的崩溃和挂起文档解释了这些开关和平台限制。这些产物回答不同问题:TRX告诉你完成了什么,序列告诉你执行停在哪里,转储则帮助你理解为什么。 示例项目面向.NET 10,使用MSTest.Sdk 4.3.3,解析后的MTP报告和崩溃转储包版本为2.3.3。在项目中启用了崩溃转储扩展,默认的MSTest配置文件提供TRX报告。项目文件大致如下: ```xml ... ``` 配置完成后,即可体验进程崩溃时的证据保留流程。
打开网易新闻 查看精彩图片
热门跟贴