自动化仓库测试
注意
自动化构建需要 Docker Pro、Team 或 Business 订阅。
Docker Hub 可以使用容器自动测试你的源代码仓库更改。你可以在任何 Docker Hub 仓库上启用 Autotest
,以便在每次对源代码仓库的拉取请求时运行测试,从而创建持续集成测试服务。
启用 Autotest
会构建用于测试的镜像,但不会自动将构建的镜像推送到 Docker 仓库。如果你想将构建的镜像推送到 Docker Hub 仓库,请启用自动化构建。
设置自动化测试文件
要设置自动化测试,请创建一个 docker-compose.test.yml
文件,该文件定义了一个 sut
服务,列出了要运行的测试。docker-compose.test.yml
文件应位于包含用于构建镜像的 Dockerfile 的同一目录中。
例如
services:
sut:
build: .
command: run_tests.sh
上一个示例构建了仓库,并在使用构建的镜像的容器内运行 run_tests.sh
文件。
你可以在此文件中定义任意数量的链接服务。唯一的要求是定义 sut
。其返回码决定测试是否通过。如果 sut
服务返回 0
,则测试通过;否则,测试失败。
注意
仅启动
sut
服务以及depends_on
中列出的所有其他服务。如果你有轮询其他服务更改的服务,请务必将轮询服务包含在depends_on
列表中,以确保所有服务都能启动。
如果需要,你可以定义多个 docker-compose.test.yml
文件。任何以 .test.yml
结尾的文件都用于测试,并且测试按顺序运行。你还可以使用自定义构建钩子来进一步自定义测试行为。
注意
如果你启用自动化构建,它们也会运行
test.yml
文件中定义的任何测试。
在仓库上启用自动化测试
要在源代码仓库上启用测试,必须先在 Docker Hub 中创建一个相关的构建仓库。你的 Autotest
设置与自动化构建位于同一页面上配置,但是你无需启用自动化构建即可使用 Autotest。自动化构建是按分支或标签启用的,你根本不需要启用它。
只有配置为使用自动化构建的分支才会将镜像推送到 Docker 仓库,无论 Autotest 设置如何。
登录到 Docker Hub 并选择 My Hub > Repositories。
选择要启用
Autotest
的仓库。在仓库视图中,选择构建选项卡。
选择配置自动化构建。
按照自动化构建中解释的方式配置自动化构建设置。
至少必须配置
- 源代码仓库
- 构建位置
- 至少一个构建规则
选择你的 Autotest 选项。
以下选项可用
关闭
:不执行额外测试构建。测试仅在配置为自动化构建的一部分时运行。内部拉取请求
:对与构建规则匹配的分支的任何拉取请求运行测试构建,但仅限于拉取请求来自同一源仓库时。内部和外部拉取请求
:对与构建规则匹配的分支的任何拉取请求运行测试构建,包括拉取请求源自外部源代码仓库时。
重要
出于安全目的,公共仓库上的外部拉取请求的 Autotest 功能受到限制。私有镜像无法拉取,Docker Hub 中定义的环境变量也无法使用。自动化构建照常运行。
选择保存以保存设置,或选择保存并构建以保存并运行初始测试。
检查你的测试结果
在仓库详情页面上,选择时间轴。
在此选项卡中,你可以查看仓库的任何待处理、进行中、成功和失败的构建和测试运行。
你可以选择任何时间轴条目来查看每次测试运行的日志。