【51CTO.com快译】 如不雅想在Docker中运行平行测试,你可能会引起容器名冲突的缺点,下面我们来谈谈若何避免这种缺点。当你在CI情况下运行测试时,有时刻要运行平行测试。这种平行法度榜样须要应用编译对象,如詹金斯、Gradle或者Maven插件。
如不雅你在应用Docker作为应用法度榜样的外部测试对象(例如数据库、邮件办事器、FTP办事器),你会发明一个大年夜问题,就是在运行平行测试时,在Docker主机里,所有文件会新建一个雷同定名的容器,以至于在你开端第二个平行测试时,你会获得一个关于冲突的容器名掉败,因为Docker主机试图启动两个雷同定名的容器,或者这两个容器具有雷同的绑定端口。
针对这个问题,你可以如许解决:
·你可以用一个Docker主机分别给每个文件做平行测试。
·你可以反复应用雷同的Docker主机并且应用Arquillian Cube Star运算器。
Arquillian Cube是Arquillian的一个扩大,可以用来在你的测试中治理Docker容器。应用Arquillian Cube,你须要在计算机上运行一个Docker保护(可所以本地的或者不是),但大年夜多半是本地的。
Arquillian Cube供给了三种不合的办法来定义容器:
·定义一个容器构成文件
·定义一个容器对象
·应用容器对象DSL
鄙人面的事例中,我将向您展示若何应用Docker构成和容器对象DSL。Star运算器可以让你指导Arquillian Cube随机定名Cube,并且可声调剂链接。如许一来,在履行平行测试时,就不会因为名称或者绑定端口产生冲突了。
我们来看一个例子:
原文作者:Alex Soto