我根据本教程配置了PhpStorm:PHPUnit for PhpStorm
我可以成功运行PHPUnit测试,因此可以正常工作。
问题是,在我的Docker容器中,我启用了Xdebug,有时我需要。通常,我docker exec
进入容器并在其中运行测试。 Xdebug大大降低了测试速度,因此我在运行测试之前先进行phpdismod -s cli xdebug
。然后测试运行速度提高了100倍!
现在,当我通过PhpStorm运行测试时,我想实现相同的行为。 PhpStorm会启动一个自己的docker容器,用于运行测试。我不知道如何在启动PHPUnit之前告诉PhpStorm运行phpdismod -s cli xdebug
。有办法吗?
答案 0 :(得分:0)
根据您提到的链接,有一种方法可以设置图像名称,例如shlink_shlink_php:latest
。
您需要做的是在自己的映像中添加entrypoint.sh
,然后根据环境变量可以启用或禁用调试模式,例如:
export DEBUG="${DEBUG:-on}"
if [ "$DEBUG" == "off" ]; then
phpdismod -s cli xdebug
fi
因此,默认情况下,调试值为on
,这意味着将xdebug模式保持活动状态。但是,如果您传递了一个名为DEBUG
且值为off
的环境值,则它将禁用xdebug。
您可以按照here中的说明传递环境变量。
或者,您可以检查here中提到的以下选项,例如,尝试通过PHPStorm的php其他选项将-dxdebug.remote_enable=0
传递给php(我不确定阻止与远程解释器的连接是否相同禁用调试器,因为我不是这方面的专家,但是您也可以检查它)