Mic*_*hař 5 php phpunit xdebug output-buffering
在phpMyAdmin,我们遭受了一段时间的奇怪testuite减速.我们已经能够将问题跟踪到启用xdebug时的情况(代码覆盖率),并且ob_start/ob_end_clean块中存在错误.去除其中任何一个都会大大减少测试时间.
xdebug enabled disabled
ob_start failure tests
enabled 20 min 15 s
disabled 1 min 15 s
Run Code Online (Sandbox Code Playgroud)
这只是为了表明差异有多大以及为什么我们要摆脱它.
在较小的规模,这可以通过单一测试显示test/classes/PMA_Advisor_test.php:
xdebug enabled disabled
ob_start failure tests
enabled 7.2 s 0.1 s
disabled 2.6 s 0.1 s
Run Code Online (Sandbox Code Playgroud)
这里的区别在于删除一个测试的单个数据集(如果你要查看源代码,它是最后一个数据集)并导致测试花费的时间不到一半!更新:在这种特殊情况下,可以使用缓解问题xdebug.default_enable=0,但对于整个测试套件而言,这并没有太大变化.
乍一看它确实看起来像xdebug中的一些bug,但是我们无法生成比上面更小的测试用例,这听起来很可疑.任何想法如何进一步调试问题如何找出实际导致这种减速的原因?