我使用 PHPUnit 进行单元测试,但是当触发 fatal error 时,脚本死亡,我没有正确的 PHPUnit 输出。
我希望 PHPUnit 输出保持格式正确,因为它是由 Eclipse 插件读取的。实际上, fatal error 会停止 PHPUnit,并且在 Eclipse 中插件无法解释任何内容(因为 PHPUnit 脚本有错误,而不是处理它)。
谢谢
最佳答案
您需要使用 PHPUnit 的进程隔离功能 - 在新进程中启动每个测试套件。
phpunit --process-isolation ...
这是确保 fatal error 不会破坏您的 phpunit 输出的唯一方法。
执行时间
进程隔离会成倍增加您的测试运行时间,因为对于每个单独的测试,都会启动一个新的 PHP 实例,执行 Bootstrap 等。
要改变这种情况,您可以选择在单独的进程中运行完整的测试用例 (@runTestsInSeparateProcesses
),或者只运行已知有时会致命的单个测试用例 (@runInSeparateProcess
)。
关于PHPUnit : Fatal error handling,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3841190/