【问题标题】:'Inconclusive' tests are reported as 'not run' by Azure DevOpsAzure DevOps 将“不确定”测试报告为“未运行”
【发布时间】:2020-12-15 05:51:55
【问题描述】:

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

【问题讨论】:

    标签: testing azure-devops mstest


    【解决方案1】:

    根据来自 Sarabjot Singh 在 github issue 上的 response 的此任务,这似乎是设计使然。

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

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

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

    此外,在开发社区提交的linked bug 似乎不太可能得到解决:

    我检测到在过去 35 天内,此问题没有太多 产品团队活动和极少量的新投票或 厘米。基于此,它的严重程度和受影响的区域,这是我的 经验到这个问题不太可能得到解决。

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

    【讨论】:

    • 非常糟糕的理由。 “其他东西会忽略您的断言错误消息,因此我们也将忽略它。”不过感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    相关资源
    最近更新 更多