You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DDEV v1.21.3中运行Paratest生成代码覆盖率时Xdebug连接失败求助

解决DDEV中Paratest执行时Xdebug连接失败问题

核心原因

这个报错是因为Paratest启动的子进程默认继承Xdebug的调试配置,但此时没有调试客户端监听host.docker.internal:9003。而代码覆盖率生成只需要Xdebug的覆盖率收集功能,不需要开启Step Debug模式。

排查与解决步骤

1. 临时禁用Xdebug调试模式,仅保留覆盖率功能

执行Paratest命令时,通过环境变量强制Xdebug只启用覆盖率模式:

XDEBUG_MODE=coverage ./vendor/bin/paratest -p8 --phpunit=./bin/simple-phpunit --coverage-html=public/coverage --coverage-clover=clover.xml

2. 永久调整DDEV的Xdebug配置(可选)

如果不想每次执行都加环境变量,可修改项目的Xdebug默认配置:

  • 在项目的.ddev/php目录下创建xdebug.ini文件(无则新建)
  • 添加配置:
    xdebug.mode=coverage
    
    若需要保留日常调试功能,可改为xdebug.mode=debug,coverage,但执行Paratest时仍需用XDEBUG_MODE=coverage临时覆盖,避免触发调试连接。

3. 验证宿主机解析与DDEV网络

确认容器内能正常解析宿主机地址:

ddev exec ping host.docker.internal

若解析失败,重启DDEV服务:

ddev restart

4. 检查Xdebug状态

执行以下命令确认Xdebug已启用且模式包含coverage:

ddev exec php -v
ddev exec php -i | grep xdebug.mode

5. 重新执行Paratest命令

调整配置后再次运行原命令,确认报错消失,覆盖率报告正常生成。

内容的提问来源于stack exchange,提问作者Tom Metcalfe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:05:20