azure-devops - 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
解决方案
推荐阅读
- macos - 在 cooja Contiki-ng 问题中构建示例
- microservices - 如何在 Eclipse Vert.x 中执行长时间运行/轮询操作
- python - 如何将 Python virtualenv 移动到不同的系统(计算机)并使用站点包中存在的包
- jasmine - Protractor/Jasmin 如果 BeforeAll 或 BeforeEach 失败,则停止执行或跳过测试
- python - 解决 Python 类型提示的循环导入
- typescript - 将 GeoFire 与 Firebase 云函数和 TypeScript 结合使用
- python - 如何将 df 整形和插值到均匀的时间间隔并用均值填充 Nan 值
- ruby-on-rails - Rails 通过其他 2 个表连接
- python - 如何获取列表并填充值并放入数据框并在 Python 中进行过滤?
- sql - 如何计算 Informix SQL 中的差异?