如何使 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.
上面写着"OK, but incomplete",所以我的测试没有失败(并且可以在连续交付的情况下发货)。有什么方法可以达到 "fail" 状态吗?我希望我的测试全局状态在风险测试中被视为失败,不知道是否可行。
有一个 --stop-on-risky
选项可以从命令行启用或在 phpunit.xml
中配置。
问题在于 运行 进程不会执行所有测试。我不知道将风险测试视为失败的直接方法。
你想要获得的行为被提出但没有被接受,所以不要指望被实施:
您可以在调用 PHPUnit 可执行文件时使用 --fail-on-risky
标志,或者将 failOnRisky="true"
属性设置为 phpunit.xml.
中的 <phpunit>
元素
与--stop-on-risky
/stopOnRisky="true"
相反,这不会在 PHPUnit 遇到有风险的测试时停止测试套件,但会使 PHPUnit 以非零状态代码退出,就像它会当其中一项测试失败时。
如果一项或多项测试被认为有风险,我希望 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.
上面写着"OK, but incomplete",所以我的测试没有失败(并且可以在连续交付的情况下发货)。有什么方法可以达到 "fail" 状态吗?我希望我的测试全局状态在风险测试中被视为失败,不知道是否可行。
有一个 --stop-on-risky
选项可以从命令行启用或在 phpunit.xml
中配置。
问题在于 运行 进程不会执行所有测试。我不知道将风险测试视为失败的直接方法。
你想要获得的行为被提出但没有被接受,所以不要指望被实施:
您可以在调用 PHPUnit 可执行文件时使用 --fail-on-risky
标志,或者将 failOnRisky="true"
属性设置为 phpunit.xml.
<phpunit>
元素
与--stop-on-risky
/stopOnRisky="true"
相反,这不会在 PHPUnit 遇到有风险的测试时停止测试套件,但会使 PHPUnit 以非零状态代码退出,就像它会当其中一项测试失败时。