【问题标题】:How can you set-up PHP + xDebug + (x)Unit + Eclipse to work with breakpoints in unit tests?如何设置 PHP + xDebug + (x)Unit + Eclipse 在单元测试中使用断点?
【发布时间】:2010-10-27 04:47:31
【问题描述】:

已经尝试了很长时间才能使其正常工作,但没有成功。基本上,我有带有 PHP 开发工具 (PDT) 的 Eclipse (3.3),以及 PDT XDebug 插件以及 SimpleTest eclipse 插件。

我想做的是调试 SimpleTest 单元测试调用的代码。 SimpleTest 清楚地可以看到 XDebug,因为我可以生成代码覆盖率报告,但它不会在断点处停止。

编辑:应该添加 XDebug 和断点在 Eclipse 中可以正常工作,只是在 SimpleTest 调用时不能正常工作

有人设置成功了吗?周围有很多乱七八糟的文档,而有用的信息却很少。

谢谢!

【问题讨论】:

    标签: php eclipse debugging xdebug simpletest


    【解决方案1】:

    确保您的 PHP 版本具有正确的 XDebug 版本,并将其添加到 php.ini 文件的最开头:

    [xdebug]
    zend_extension=full_path_to_your_xdebug.so 
    xdebug.default_enable=On
    xdebug.remote_enable=On
    xdebug.remote_handler="dbgp"
    xdebug.remote_host="localhost"
    xdebug.remote_port=9000
    

    然后执行apachectl gracefulphpinfo 并确保XDebug 存在且处于活动状态。如果是这样,一切都应该正常工作。我知道它对我有用。

    编辑:我在阅读整个问题之前回答了。

    在运行脚本之前你应该设置环境变量;

    export XDEBUG_CONFIG="idekey=session_name"
    

    也许可以从 php 做到这一点,但我无法测试:

    putenv('XDEBUG_CONFIG="idekey=session_name"');
    

    您应该确保您使用的 php 二进制文件已加载 XDebug 扩展,在我的系统上 apache 模块有它,但默认 CLI 解释器没有,但我故意运行不同的版本。

    这里有一些good documentation

    【讨论】:

      【解决方案2】:

      进一步了解 Kris 的回答,如果您在同一台服务器上管理生产和开发环境,最好将您的 xdebug 设置降级为 php includevirtualhosts 的专用设置到devtesting 环境:

      • 虚拟主机的语法是

        <virtualHost ....>
        
          (...)
        
          # Xdebug ENV
          php_flag xdebug.auto_trace on
          php_flag xdebug.idekey session_name
          php_flag xdebug.profiler_enable_trigger 1
          php_flag xdebug.(...)
        
          (...)
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-12-28
        • 2015-10-28
        • 2018-07-23
        • 2014-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多