我根据本教程配置了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/