如果没有断言,是否可以使 pytest 失败?

Tho*_*mas 5 python assert pytest

今天我有一个失败的测试,很高兴成功了,因为我在最后忘记了一个相当重要的行:

assert actual == expected
Run Code Online (Sandbox Code Playgroud)

我希望机器将来能捕捉到这个错误。有没有办法让 pytest 检测测试函数是否没有断言任何内容,并将其视为测试失败?

当然,这需要一个“全局”的配置设置;注释每个测试函数@fail_if_nothing_is_asserted会破坏目的。

Jor*_*ans 2

这就是为什么在编写使测试通过的代码之前编写失败的测试确实有帮助的原因之一。这是对您的代码进行的一点额外的健全性检查。

另外,第一次通过测试而没有实际编写代码来使其通过时也是一个很好的双重时刻。

  • 好点子。为了便于论证,想象一下,假设某个人会时不时地在编写实现后编写测试。这个假设的人与任何现存的人,无论是活着的还是死了的,如有任何相似之处,当然纯粹是巧合。 (2认同)