对 phpunit 测试进行 docker 化时的最佳实践
Best practices when dockerizing phpunit testing
我在 PHP 7.4 项目上工作,该项目已经在 Docker 上运行。目前,我的测试(仅 PHP 单元)在 projects/tests 中,我的源代码在 projects/src 中。当构建 docker 容器时,src 文件夹被带到 /app 文件夹,项目的其余部分(docker 配置文件和测试文件)被丢弃。我认为这样做是为了减轻容器的尺寸。
首先:这是 common/good 实践还是我应该将测试放入容器中?或者也许我应该用我的源代码和我的测试制作另一个“测试”容器?
在第二种情况下,有没有办法继承整个 docker 文件并在里面添加一些东西(基本上第二个测试容器将是一个几乎相同的容器,但测试文件被复制和XDebug 安装)。
此外,可能还有第三个选项我没有考虑过。
我真的是 docker 的新手,完全迷失了。
此致,
您可以在 运行 将测试代码挂载到容器上。查看 docker 运行 的 -v 选项。下一步将是覆盖 docker 入口点或 运行 将 运行 测试的自定义命令。
如果您需要额外的包来 运行 您的测试,那么继承初始映像、安装您必须安装的任何内容以及 运行 测试会更明智。
我在 PHP 7.4 项目上工作,该项目已经在 Docker 上运行。目前,我的测试(仅 PHP 单元)在 projects/tests 中,我的源代码在 projects/src 中。当构建 docker 容器时,src 文件夹被带到 /app 文件夹,项目的其余部分(docker 配置文件和测试文件)被丢弃。我认为这样做是为了减轻容器的尺寸。
首先:这是 common/good 实践还是我应该将测试放入容器中?或者也许我应该用我的源代码和我的测试制作另一个“测试”容器?
在第二种情况下,有没有办法继承整个 docker 文件并在里面添加一些东西(基本上第二个测试容器将是一个几乎相同的容器,但测试文件被复制和XDebug 安装)。
此外,可能还有第三个选项我没有考虑过。
我真的是 docker 的新手,完全迷失了。
此致,
您可以在 运行 将测试代码挂载到容器上。查看 docker 运行 的 -v 选项。下一步将是覆盖 docker 入口点或 运行 将 运行 测试的自定义命令。
如果您需要额外的包来 运行 您的测试,那么继承初始映像、安装您必须安装的任何内容以及 运行 测试会更明智。