在写测试的时候,我曾经可以使用dump和die函数dd()来转储变量。但是在新的项目中,每当代码中有一个die的时候,它似乎会抛出“Test was run in child process and ended unexpectedly”,而不是显示转储的变量结果。
这使得开发/调试测试变得非常困难和缓慢。最近有其他人经历过这种情况吗?
我目前使用的是phpUnit 9.5.2版本,可以确认这在其他项目的同一版本中确实有效。
我也在PhpStorm的内置测试UI中运行这个程序,并运行Drupal9.2
2条答案
按热度按时间6ie5vjzr1#
首先,如果你想避免这个问题,使用
var_dump
和print_r
而不是dd
。消息
Test was run in child process and ended unexpectedly
是由于测试进程死亡,正如dd
函数(dump & die)所预期的那样。我还高度怀疑您正在使用PHPUnit进程隔离。
至于为什么这个变量没有被打印出来,我也不知道。也许用一段代码来重现这个错误会有帮助。
eoigrqb62#
正如Anas Tiour所说,如果你使用进程隔离,当你使用“die()”(它出现在
dd()
的场景后面)时,它可能会杀死你的“主”进程。如果你不需要
processIsolation
,把它从你的phpunit.xml
中删除,或者把它的值改为false
(顺便说一句,默认值是false)