通过PhpStorm

时间:2019-03-21 09:24:05

标签: docker phpunit phpstorm xdebug

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

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

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

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

1 个答案:

答案 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(我不确定阻止与远程解释器的连接是否相同禁用调试器,因为我不是这方面的专家,但是您也可以检查它)