首页 > 解决方案 > Azure Devops 2019 无法在 Visual Studio 测试任务中启用诊断

问题描述

我们有一个带有 Azure Devops 2019 的本地 TFVC 设置。我们使用“经典编辑器”来创建我们的管道,因为 YAML 不支持 TFVC 存储库:https ://developercommunity.visualstudio.com/t/enable-yaml- for-tfvc/234618

我们在测试运行期间发生了零星的崩溃,导致整个套件崩溃。我们只是使用 MSTest 和 Visual Studio 测试任务,如下所示。如您所见,我启用了“收集高级诊断”选项:

在此处输入图像描述

但是,正如您在输出中看到的那样,该选项仅在“本地运行测试”的第一次通过时才启用为“真”,而没有找到程序集?在第二遍中,当它找到程序集时,选项为“false”并且命令行未更新。

在此处输入图像描述

如何为第二遍启用诊断?管道中只有一个 Visual Studio 测试任务,它似乎很好地选择了 /InIsolation 参数,所以我很惊讶地看到诊断选项被禁用。为什么会发生两次通行证?

谢谢。

更新 1

打开 system.debug 后,我注意到发现了一些包含“test”一词但不是测试程序集的 dll,因此我改为**\*test*.dll清理**\*Tests.dll它。在这之后,我终于在日志文件中看到了以下内容:

/diag:"H:\visbuild2\_work\_temp\f7742940-b794-11eb-9d69-699b53f653ca.txt"
Starting test execution, please wait...
Logging Vstest Diagnostics in file: H:\visbuild2\_work\_temp\f7742940-b794-11eb-9d69-699b53f653ca.txt
Logging TestHost Diagnostics in file: H:\visbuild2\_work\_temp\f7742940-b794-11eb-9d69-699b53f653ca.host.21-05-17_22-53-21_51202_1.txt

...

Results File: H:\visbuild2\_work\778\s\TestResults\tfsservice_VIS-BUILD_2021-05-17_22_53_25.trx

Total tests: Unknown. Passed: 353. Failed: 0. Skipped: 0.
Test Run Aborted.

所以这是一个进步,但现在的问题是该H:\visbuild2\_work\_temp位置高于当前构建位置,并且似乎在所有构建之间共享,因此文件很快被另一个构建删除。我尝试通过“其他控制台选项”更改位置,如下所示:

/Blame:CollectDump;CollectAlways=true;DumpType=full /Diag:"$(BuildLocation)\testlog.txt";tracelevel=verbose

但这产生了 /Diag 不能指定两次的错误。然后我尝试取消选中“收集高级诊断”选项,但奇怪的是,我得到了与两次指定 /Diag 相同的错误。有没有办法更改生成诊断文件的位置?当然,尽管测试运行已中止,但我仍然没有任何迹象表明已创建故障转储。

更新 2

似乎 /diag 仅在 system.debug 设置为 true 时启用: https ://github.com/microsoft/vstest-docs/blob/master/docs/diagnose.md

标签: azure-devopsazure-pipelinesmstesttfvc

解决方案


尝试将“收集进程转储并附加到测试运行报告”字段的值设置为“始终”以查看它是否可以工作。

在此处输入图像描述


推荐阅读