自动仓库测试
注意
自动构建需要 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 并选择**仓库**。
选择要为其启用
Autotest
的仓库。从仓库视图中,选择**构建**选项卡。
选择**配置自动构建**。
配置自动构建设置,如 自动构建 中所述。
至少必须配置
- 源代码仓库
- 构建位置
- 至少一个构建规则
选择你的**Autotest**选项。
以下选项可用
关闭
:没有额外的测试构建。测试仅在配置为自动构建的一部分时运行。内部拉取请求
:对与构建规则匹配的分支的任何拉取请求运行测试构建,但仅当拉取请求来自同一个源代码仓库时。内部和外部拉取请求
:对与构建规则匹配的任何拉取请求运行测试构建,包括拉取请求起源于外部源代码仓库时。
重要
出于安全目的,对公共仓库的外部拉取请求上的自动测试受到限制。不会拉取私有镜像,并且在 Docker Hub 中定义的环境变量不可用。自动构建将照常工作。
选择**保存**以保存设置,或选择**保存并构建**以保存并运行初始测试。
检查你的测试结果
从仓库的详细信息页面中,选择**时间线**。
从此选项卡中,你可以看到仓库的任何挂起、进行中、成功和失败的构建和测试运行。
你可以选择任何时间线条目以查看每次测试运行的日志。