如何使 PHPUnit 在有风险的测试中失败


How to make PHPUnit fail on risky tests

如果一个或多个测试被认为是有风险的,我希望PHPUnit失败。实际上:

PHPUnit 5.3.4 by Sebastian Bergmann and contributors.
..RRR..                                                         7 / 7 (100%)
Time: 2.83 seconds, Memory: 26.00Mb
OK, but incomplete, skipped, or risky tests!
Tests: 7, Assertions: 137, Risky: 3.

它说"好的,但不完整",所以我的测试没有失败(并且可以在连续交付的情况下发货)。有什么方法可以达到"失败"状态吗?我希望我的测试全局状态在有风险的测试中被视为失败,不知道这是否可能。

您可以在调用 PHPUnit 可执行文件时使用 --fail-on-risky 标志,或者在 phpunit.xml 中将 failOnRisky="true" 属性设置为 <phpunit> 元素。

--stop-on-risky/stopOnRisky="true"相反,当 PHPUnit 遇到有风险的测试时,这不会停止测试套件,但它会使 PHPUnit 以非零状态代码退出,就像其中一个测试失败时一样。

有一个

--stop-on-risky选项可以从命令行启用或在phpunit.xml中配置。

这样做的问题是运行进程不会执行所有测试。我不知道将有风险的测试视为失败的直接方法。

你想要获得的行为已被提出但未被接受,所以不要指望被实现:

https://github.com/sebastianbergmann/phpunit/issues/1612