gpt4 book ai didi

c# - 启用 "Specify a batch size"时,Azure DevOps 版本中缺少控制台输出

转载 作者:行者123 更新时间:2023-12-04 21:30:08 24 4
gpt4 key购买 nike

我们在 Azure DevOps 中运行了一个大型测试集(基于 NUnit)。最近我们在 Visual Studio 测试任务中启用了“重新运行失败的测试”选项。起初,由于 VSTest 中处理自定义测试显示名称(我们的测试所需)的错误,这不起作用。测试仍然只运行一次。但是,通过设置 batch size ,此问题已修复,最终正确重试测试。
Rerun failed tests

它工作得很好,除了一个奇怪的效果......没有明显的原因,详细的日志不再显示我们自己的自定义输出(由 Console.WriteLine 生成)。这在以前没有问题。我们现在得到的只是默认输出和最终测试结果。
Current output

未启用“指定批量大小”的日志提供更多信息:
Old logs

日志本身仍然被写入:我们知道(几乎)所有信息也包含在每个测试中。这显示在测试结果中:
Single test result

此外,只需禁用批量大小选项即可再次显示日志。

有谁知道是什么导致了这种行为,以及如何解决它?到目前为止,在 Console.Writeline/Trace.Writeline/Debug.Writeline 等之间切换并没有帮助,我还没有找到关于这个特定问题的很多其他信息......并且在某些情况下有一个完整的日志文件是必要的(或更实用的方式),所以如果我们设法同时进行重试和完整日志记录会很好。

提前致谢!

最佳答案

我发了 question在 developercommunity.visualstudio.com 上也是如此。讨论花了一些时间,但总结一下,给出了以下回应:

“支持的行为是将测试中的跟踪信息作为测试结果文件 (trx)/标准控制台日志的一部分而不是构建日志的一部分(如您在问题中提到的)。请注意这是还取决于正在使用的测试框架。没有计划让跟踪信息从测试流到构建日志。当您打开批处理选项时,您看到的不同行为是由于内部执行流改变了位(最终所有流将在 future 几天内收敛到与批处理选项相同的选项)。我们建议不要依赖构建日志。相反,测试选项卡是您将在上下文中获得更好的日志以进行测试用例/测试运行的地方。 ”

在测试运行中找到的 trx 文件中应该提供完整的测试运行输出。经查,确实是这样:

FullTestRunTrx

在 Notepad++ 中打开文件时,我终于看到了我完整运行的日志:

FullTestRunLogs

- 所有这些行都是使用 Console.WriteLine() 编写的。

- 如果 trx 文件多于一个,则最大的文件包含完整运行的日志:小文件仅包含所选测​​试的日志。

笔记:
我们发现在测试运行超时期间,不会生成此文件。这已报告给 Microsoft 并被确认为一个问题:

“明白了这一点。我们正在 vstest 任务中进行高级诊断。例如,如果测试需要更多时间来完成,我们将中止测试。在这种情况下,还将创建测试过程的转储,当然我们还会上传 trx。第二种情况,不是特定测试需要时间,但整体运行结束超时,我们将转储测试过程并中止运行。转储将帮助您调试问题。”

在 future 的某个地方,这个转储应该可以使用。

关于c# - 启用 "Specify a batch size"时,Azure DevOps 版本中缺少控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54788380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com