我有一个 PHPUnit 引导文件,它创建一个用于与数据库相关的单元测试的测试数据库,并注册一个关闭函数以在测试完成后销毁数据库。每次运行都有一个新的数据库!
问题:当测试失败时,我想保留数据库以进行调试。目前,我必须手动禁用我的register_shutdown_function()
通话,然后重新运行测试。
如果我可以访问 PHPUnit 运行的最终成功/失败状态,我可以根据 PHPUnit 引导文件中的开关动态触发数据库销毁过程。
PHPUnit 将此信息存储在某处以触发正确的结果事件,即输出OK
与FAILURES!
. 但是,据我发现,此信息不会暴露给用户级引导文件。有人做过这样的事吗?
如果您想探索,这里是您从命令行运行 PHPUnit 时出现的 PHPUnit 堆栈跟踪...
PHP 1. {main}() /usr/bin/phpunit:0
PHP 2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:46
PHP 3. PHPUnit_TextUI_Command->run() /usr/share/php/PHPUnit/TextUI/Command.php:130
PHP 4. PHPUnit_TextUI_Command->handleArguments() /usr/share/php/PHPUnit/TextUI/Command.php:139
PHP 5. PHPUnit_TextUI_Command->handleBootstrap() /usr/share/php/PHPUnit/TextUI/Command.php:620
PHP 6. PHPUnit_Util_Fileloader::checkAndLoad() /usr/share/php/PHPUnit/TextUI/Command.php:867
PHP 7. PHPUnit_Util_Fileloader::load() /usr/share/php/PHPUnit/Util/Fileloader.php:79
PHP 8. include_once() /usr/share/php/PHPUnit/Util/Fileloader.php:95
PHP 9. [YOUR PHPUNIT BOOTSTRAP RUNS HERE]