Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Testing 关于docker、测试环境和开发工作流程的查询_Testing_Docker - Fatal编程技术网

Testing 关于docker、测试环境和开发工作流程的查询

Testing 关于docker、测试环境和开发工作流程的查询,testing,docker,Testing,Docker,我是一名QA自动化工程师,我正在调查docker作为运行测试的潜在方式 传统上,我们遵循git flow方法,其中基本上有一个dev和一个master分支。开发人员不断地将他们的新更改合并到开发人员分支。当我们希望发布时,我们将有一个代码中断,此时dev分支上当前的所有内容都将被视为下一个版本的一部分。然后运行脚本来创建候选版本,并将其部署到staging。任何需要进行的修复都会在发布分支中进行,一旦准备好进入prod,新代码就会合并到master并部署。主节点被重新合并到所有分支,以便所有内容

我是一名QA自动化工程师,我正在调查docker作为运行测试的潜在方式

传统上,我们遵循git flow方法,其中基本上有一个dev和一个master分支。开发人员不断地将他们的新更改合并到开发人员分支。当我们希望发布时,我们将有一个代码中断,此时dev分支上当前的所有内容都将被视为下一个版本的一部分。然后运行脚本来创建候选版本,并将其部署到staging。任何需要进行的修复都会在发布分支中进行,一旦准备好进入prod,新代码就会合并到master并部署。主节点被重新合并到所有分支,以便所有内容都是最新的。(此处详细介绍:)

所以我的问题是docker,你需要这个工作流吗?我在考虑可能有一个如下所述的工作流程:

  • 开发人员开始开发新功能
  • 开发人员拉住主机,创建特性分支-开发人员工作吗-单元测试通过,开发人员很乐意将工作交给QA
  • 开发人员运行脚本来创建候选发布版本(这将涉及在新代码被另一个开发人员合并到主版本的情况下再次拉主版本)
  • Docker然后旋转一个容器,其中包含多个容器(前端应用程序、DB实例等)
  • 然后针对该候选版本运行测试(单元、api、selenium集成等),如果良好,则部署到生产环境中

那么,我是否需要一个传统意义上的staging env,它可以随时使用

我认为您将两件事混为一谈:持续集成环境和分段环境。Docker确实可以很容易地为整个堆栈提供一个新的实例以进行持续集成(请参阅以获取一个好的示例),但通常情况下,您仍然需要一个在部署到prod之前始终可用于测试的暂存环境。此暂存环境应运行最终部署到prod的相同docker映像。

我认为您将两件事混为一谈:持续集成环境和暂存环境。Docker确实可以很容易地为整个堆栈提供一个新的实例以进行持续集成(请参阅以获取一个好的示例),但通常情况下,在部署到prod之前,您仍然需要一个始终可用于测试的暂存环境。此暂存环境应运行最终部署到prod的相同docker映像。

您的意思是要用开发人员的计算机(运行docker容器)替换暂存环境吗?嗨,托马斯莱维尔-我想在某种程度上。当开发人员运行脚本来创建候选版本时,就会创建登台环境。我的意思是,使用docker意味着我们应该能够非常快地启动与生产相匹配的容器,所以我们需要传统意义上的staging env吗?对不起,如果这不是很清楚,只是想让我的头围绕Docker。你的意思是你想用开发人员的计算机(运行Docker容器)取代登台环境吗?嗨,Thomaslevel-我想是这样的。当开发人员运行脚本来创建候选版本时,就会创建登台环境。我的意思是,使用docker意味着我们应该能够非常快地启动与生产相匹配的容器,所以我们需要传统意义上的staging env吗?对不起,如果这不是很清楚,我现在只是想了解一下Docker。是的,谢谢Abdullah。你是对的。经过更多的思考,登台环境留下来!是的,谢谢你,阿卜杜拉。你是对的。经过更多的思考,登台环境留下来!