我根据本教程配置了PhpStorm:PHPUnit for PhpStorm

我可以成功运行PHPUnit测试,因此可以正常工作。

问题是,在我的Docker容器中,我启用了有时需要的Xdebug。通常,我在容器中docker exec并在其中运行测试。 Xdebug大大降低了测试速度,因此在运行测试之前,我先执行phpdismod -s cli xdebug。然后测试运行速度提高了100倍!

现在,当我通过PhpStorm运行测试时,我想实现相同的行为。 PhpStorm会启动一个自己的docker容器,用于运行测试。我不知道如何在启动PHPUnit之前告诉PhpStorm运行phpdismod -s cli xdebug。有办法吗?

最佳答案

根据您提到的链接,有一种方法可以设置图像名称,例如shlink_shlink_php:latest

您需要做的是在自己的镜像中添加entrypoint.sh,并根据环境变量可以启用或禁用 Debug模式,例如:

export DEBUG="${DEBUG:-on}"
if [ "$DEBUG" == "off" ]; then
  phpdismod -s cli xdebug
fi

因此,默认情况下,调试值为on,这意味着使xdebug模式保持 Activity 状态。但是,如果您传递的环境值DEBUG和值off,则它将禁用xdebug。

您可以按照here中的说明传递环境变量。

或者,您可以检查here中提到的以下选项,例如尝试通过PHPStorm通过php的其他选项传递-dxdebug.remote_enable=0(我不确定阻止与远程解释器的连接是否与禁用调试器相同,因为我不是专家。部分,但您也可以检查)

关于docker - 通过PhpStorm运行PHPUnit之前在Docker容器中禁用Xdebug,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55277167/

10-16 06:03