运行测试时,我应该复制生产环境(docker 镜像、依赖项等)吗?
问题是,如果我复制生产环境,如何获得像phpunit和phpstan这样的作曲家开发包?
这方面的最佳实践是什么?
我是否应该复制生产环境(docker 映像, 运行测试时的依赖关系等?
对此的直接答案是肯定的。通过在测试环境中复制生产环境,意味着您可以限制仅在生产环境中发生的一个特定环境中的问题。
话虽如此,很多时候不宜使测试环境与生产环境相同。 例如,对于 Web 服务,您无法(轻松)在 CI 中针对生产域名运行测试。
Docker使您可以更轻松地在SDLC的其他部分使用生产环境,例如开发和CI。我建议将生产环境的 docker 映像提供给所有从事该项目的人(开发、QA 等)。在有些示例中,人们希望远离生产 docker 映像,例如,安装不应在生产环境中可用的其他调试工具。
总之,在测试/开发环境中使用生产 docker 映像(和依赖项)将使您对产品在生产中的性能更有信心。这将缩短您的上市时间和生产中的环境问题。