How can I get XDebug to run with PHPUnit on the CLI?(如何让 XDebug 在 CLI 上与 PHPUnit 一起运行?)
问题描述
我已尝试运行以下 CLI 命令:
I've tried running the following CLI command:
phpunit -d xdebug.profiler_enable=on XYZTestCase.php
但它只是正常运行.谁能指出我正确的方向?谢谢!
but it just runs as normal. Can anyone point me in the right direction?? Thx!
这是 XDebug 设置:
Here's the XDebug settings:
xdebug
xdebug support => enabled
Version => 2.1.2
Supported protocols => Revision
DBGp - Common DeBuGger Protocol => $Revision: 1.145 $
Directive => Local Value => Master Value
xdebug.auto_trace => Off => Off
xdebug.collect_assignments => Off => Off
xdebug.collect_includes => On => On
xdebug.collect_params => 0 => 0
xdebug.collect_return => Off => Off
xdebug.collect_vars => Off => Off
xdebug.default_enable => On => On
xdebug.dump.COOKIE => no value => no value
xdebug.dump.ENV => no value => no value
xdebug.dump.FILES => no value => no value
xdebug.dump.GET => no value => no value
xdebug.dump.POST => no value => no value
xdebug.dump.REQUEST => no value => no value
xdebug.dump.SERVER => no value => no value
xdebug.dump.SESSION => no value => no value
xdebug.dump_globals => On => On
xdebug.dump_once => On => On
xdebug.dump_undefined => Off => Off
xdebug.extended_info => On => On
xdebug.file_link_format => no value => no value
xdebug.idekey => Nam => no value
xdebug.manual_url => http://www.php.net => http://www.php.net
xdebug.max_nesting_level => 100 => 100
xdebug.overload_var_dump => On => On
xdebug.profiler_aggregate => Off => Off
xdebug.profiler_append => Off => Off
xdebug.profiler_enable => Off => Off
xdebug.profiler_enable_trigger => Off => Off
xdebug.profiler_output_dir => c:/wamp/tmp => c:/wamp/tmp
xdebug.profiler_output_name => cachegrind.out.%t.%p => cachegrind.out.%t.%p
xdebug.remote_autostart => On => On
xdebug.remote_connect_back => Off => Off
xdebug.remote_cookie_expire_time => 3600 => 3600
xdebug.remote_enable => On => On
xdebug.remote_handler => dbgp => dbgp
xdebug.remote_host => localhost => localhost
xdebug.remote_log => no value => no value
xdebug.remote_mode => req => req
xdebug.remote_port => 9000 => 9000
xdebug.scream => Off => Off
xdebug.show_exception_trace => Off => Off
xdebug.show_local_vars => Off => Off
xdebug.show_mem_delta => Off => Off
xdebug.trace_format => 0 => 0
xdebug.trace_options => 0 => 0
xdebug.trace_output_dir => =>
xdebug.trace_output_name => trace.%c => trace.%c
xdebug.var_display_max_children => 128 => 128
xdebug.var_display_max_data => 512 => 512
xdebug.var_display_max_depth => 3 => 3
推荐答案
xdebug.profiler_enable
设置不能在运行时更改,只能在脚本开始时更改.
The xdebug.profiler_enable
setting can't be changed at runtime but only at the start of script.
运行 phpunit -d foo=bar
只会导致 phpunit 调用 ini_set("foo", "bar");
而这不起作用,因为该值不能在运行时更改.
Running phpunit -d foo=bar
will just lead to phpunit calling ini_set("foo", "bar");
and that doesn't work since the value can't change at runtime.
请参阅:xdebug.profiler_enable
启用 Xdebug 的分析器,它在配置文件输出目录中创建文件.KCacheGrind 可以读取这些文件以可视化您的数据.无法使用 ini_set() 在脚本中设置此设置.如果您想选择性地启用分析器,请将 xdebug.profiler_enable_trigger 设置为 1 而不是使用此设置.
Enables Xdebug's profiler which creates files in the profile output directory. Those files can be read by KCacheGrind to visualize your data. This setting can not be set in your script with ini_set(). If you want to selectively enable the profiler, please set xdebug.profiler_enable_trigger to 1 instead of using this setting.
解决方案:
php -d xdebug.profiler_enable=on /usr/bin/phpunit XYZTestCase.php
通过将设置直接应用到 PHP 运行时而不是 phpunit,它将在脚本启动之前设置并且应该可以工作.
By applying the setting directly to the PHP runtime and not phpunit it will be set before the script starts and should work.
这篇关于如何让 XDebug 在 CLI 上与 PHPUnit 一起运行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何让 XDebug 在 CLI 上与 PHPUnit 一起运行?
基础教程推荐
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01