为什么 JUnit 超时是错误而不是失败?

Why is JUnit timeout an Error not Failure?

我正在学习 JUnit 4。我遇到了注释 @Test(Timeout=)。当我 运行 这个测试用例并且执行时间超过指定的毫秒数时,如果显示为错误。我猜应该是under failure吧!如果有人可以向我解释为什么这是错误而不是失败。谢谢

失败是因为当你做出断言,结果证明是错误的。这意味着您的代码没有产生满足测试要求的正确结果。或者你的测试代码有误。

错误是指发生意外情况并阻止您的测试正常完成的情况。超时非常适合这一类别——它们是一个安全网,可确保您的构建始终完成,即使您的测试 运行 自行消失。通过使用超时,您不是做出关于运行时间的断言,您只是在防御无限构建。