在 scalatest 中将测试标记为损坏

Flag a test as broken in scalatest

有时测试是有效的,但被测试的代码是错误的,并且有针对测试场景的缺陷记录。修复缺陷后,测试将通过。

在那之前,我可以将测试标记为 "ignore",并在评论中添加缺陷编号。那么测试将不会 运行,它会被标记为被忽略,并且指标将反映它被忽略的事实。当缺陷被标记为已修复时,我可以找到测试用例并重新启用测试。

我可能可以使用它,但我有点想要另一种选择:将测试标记为缺陷。这导致测试仍然是 运行,但反转了语义,在这种情况下,失败是预期的,没有什么值得惊慌的,而通过是庆祝的理由,并被召集。在这种情况下,还有两个汇总统计:预期的测试失败和意外的测试通过。

ScalaTest 中是否已经存在这样的东西?

阅读 ScalaTest 的 scaladoc,我找到了答案:pendingUntilFixed

一个示例(使用 FreeSpec,因为这是我的首选语法):

"some test that is known to be broken" in {
    pendingUntilFixed {
        info("Broken - see DEFECT-12345")
        // original test code
        ...
    }
}

这完全符合我最初的要求,包括一旦代码不再被破坏就会失败。为 ScalaTest 欢呼! :)