Docker Hub支持自动测试,能够针对源代码仓库的变更进行容器测试。您可以在任何Docker Hub仓库中启用Autotest,以便对每个拉取请求执行测试,从而实现持续集成的测试服务。
启用Autotest后,将会构建用于测试的镜像,但系统并不会自动将这些镜像推送到Docker Hub。如果希望将构建的镜像上传到Docker Hub,请同时启用Automated Builds。
要配置自动化测试,请创建一个名为docker-compose.test.yml的文件,该文件定义了需要运行测试的服务。此docker-compose.test.yml文件应放在包含Dockerfile的目录中。
例如,您可以这样定义:
sut:
build: .
command: Run_tests.sh
上述示例构建了仓库,并在容器中使用构建的镜像执行Run_tests.sh文件。
您可以在该文件中定义任意数量的链接服务,唯一的要求是必须定义sut。其返回码将决定测试是否成功。如果服务返回成功,则测试通过;如果失败,则测试不通过。
请注意,仅需启动sut服务及其依赖的所有服务。假如您有服务需要轮询其他服务的状态,务必将该轮询服务包括在depends_on列表中,以确保所有服务已正常启动。
如果需要,您可以定义多个docker-compose.test.yml文件。所有以.test.yml结尾的文件都将用于测试,并且测试将会按顺序执行。您还可以利用自定义构建挂钩来进一步调整测试行为。
请注意,启用自动构建后,也会运行test.yml文件中定义的所有测试。
[[[IMG_1]]]
[[[IMG_2]]]
[[[IMG_3]]]
