PHPUnit : 致命错误处理执行时间

2022-08-30 19:59:20

我使用PHPUnit进行单元测试,但是当触发致命错误时,脚本会死,我没有正确的PHPUnit输出。

我希望PHPUnit输出保持正确的格式,因为它是由Eclipse的插件读取的。实际上,致命错误会阻止PHPUnit,并且在Eclipse中,插件无法解释任何内容(因为PHPUnit脚本错误,而不是处理它)。

谢谢


答案 1

您需要使用PHPUnit的进程隔离功能 - 在新进程中启动每个测试套件。

phpunit --process-isolation ...

这是确保致命错误不会破坏phpunit输出的唯一方法。

执行时间

进程隔离会使测试运行时间成倍增加,因为对于每个测试,都会启动一个新的PHP实例,执行引导等。

若要修正此情况,您可以选择在单独的进程中运行完整的测试用例 (),或者只运行已知有时致命的单个测试用例 ()。@runTestsInSeparateProcesses@runInSeparateProcess


答案 2

set_error_handler()不会帮助你。您可以使用 register_shutdown_function() 捕获致命错误


推荐