首页 > 解决方案 > Azure DevOps 将“不确定”测试报告为“未运行”

问题描述

我有一些针对外部服务的集成测试,有时可能会失败。对于这些,我正在运行 'Assert.Inconclusive("errMsgHere");' 这样测试就不会导致整个 CI/CD 管道失败;我只是想要一个警告。虽然当我在 Visual Studio 中本地运行测试时,这确实会给出一个警告图标,但对于 Azure DevOps,测试报告为“未运行”。此外,在管道运行的“测试”选项卡中,测试的“调试”详细信息有一个错误消息的空白条目,而不是“errMsgHere”,即使该错误消息包含在输出的 .trx 文件中!当然,Azure DevOps 应该显示 Assert.Inconclusive() 输出的消息。有没有什么办法可以得到这个消息,或者把测试结果报告为比“不运行”更有用的东西 ? 也许是“警告”或“不确定”?

标签: testingazure-devopsmstest

解决方案


根据Sarabjot Singh 对此任务的 github问题的回复,这似乎是设计使然。

@osolo 不确定的测试与跳过的测试相同。

不将它们报告为失败和任务失败的行为目前是设计使然。它基于测试平台(https://github.com/microsoft/vstest)和测试框架(https://github.com/microsoft/testfx)设置的优先级

当您使用 vstest.console 运行程序在您的机器上本地运行测试时,会有什么行为?您可以生成 trx 结果文件(使用 --logger:trx 选项),然后比较管道 UI 中显示的内容。

此外,在开发社区提交的链接错误似乎不太可能得到解决:

我发现在过去的 35 天里,这个问题没有太多的产品团队活动和非常少量的新投票或评论。基于此,它的严重性和受影响的区域,根据我的经验,这个问题不太可能得到解决。

似乎确实提到了一种解决方法,尽管它可能无法达到您想要的结果。我知道这可能不是您想要的,但是您可以通过为测试任务设置“出错时继续”选项来将测试失败视为警告。不过,它会将所有失败都视为警告,所以也许有些情况你确实想要停止管道对你的情况没有用处。


推荐阅读