我有一些非常慢的 PHPUnit 测试(43 次测试需要 8 分钟),我需要使用 XHProf 来找出问题所在。
如何从命令行执行此操作?我在项目的/vendor 目录中有 PHPUnit,通过 composer 加载。
最佳答案
要找出哪些测试运行缓慢,您可以使用
通过 Composer 安装监听器,然后在您的 phpunit.xml 中启用它,例如
<phpunit bootstrap="vendor/autoload.php">
...
<listeners>
<listener class="JohnKary\PHPUnit\Listener\SpeedTrapListener" />
</listeners>
</phpunit>
要找出测试运行缓慢的原因,您可以使用
可以在phpunit.xml中配置,例如
<listeners>
<listener class="PHPUnit_Util_Log_XHProf" file="PHPUnit/Util/Log/XHProf.php">
<arguments>
<array>
<element key="xhprofLibFile">
<string>/var/www/xhprof_lib/utils/xhprof_lib.php</string>
</element>
<element key="xhprofRunsFile">
<string>/var/www/xhprof_lib/utils/xhprof_runs.php</string>
</element>
<element key="xhprofWeb">
<string>http://localhost/xhprof_html/index.php</string>
</element>
<element key="appNamespace">
<string>Doctrine2</string>
</element>
<element key="xhprofFlags">
<string>XHPROF_FLAGS_CPU,XHPROF_FLAGS_MEMORY</string>
</element>
<element key="xhprofIgnore">
<string>call_user_func,call_user_func_array</string>
</element>
</array>
</arguments>
</listener>
</listeners>
关于php - 如何使用 XHProf 从命令行分析 PHPUnit 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17217228/