自动化仓库测试
注意
自动化构建需要一个 Docker Pro、Team 或 Business 订阅。
Docker Hub 可以自动测试对源代码存储库的更改
使用容器。您可以启用Autotest
在任何 Docker Hub 存储库上
要对源代码存储库的每个拉取请求运行测试,请创建一个
持续集成测试服务。
使Autotest
构建用于测试目的的镜像,但不构建镜像
自动将构建的镜像推送到 Docker 仓库。如果您想推送
构建的镜像上传到您的 Docker Hub 存储库,启用 Automated Builds。
设置自动化测试文件
要设置自动化测试,请创建一个docker-compose.test.yml
文件,其中
定义了一个sut
列出要运行的测试的服务。
这docker-compose.test.yml
file 应位于
包含用于构建镜像的 Dockerfile。
例如:
services:
sut:
build: .
command: run_tests.sh
上面的示例构建了存储库,并运行run_tests.sh
文件
使用构建镜像的容器。
您可以在此文件中定义任意数量的链接服务。唯一的要求
那是sut
已定义。其返回代码确定测试是否通过。
如果sut
服务退货0
,否则失败。
注意
只有
sut
service 和depends_on
是 开始。如果您的服务会轮询其他服务中的更改,请确保 要将轮询服务包含在depends_on
列表以确保您的所有服务都已启动。
您可以定义多个docker-compose.test.yml
文件(如果需要)。任何文件
结尾为.test.yml
用于测试,并且测试按顺序运行。
您还可以使用自定义构建挂钩来进一步自定义测试行为。
注意
如果启用 Automated builds(自动生成),它们还会运行定义的任何测试 在
test.yml
文件。
在仓库上启用 Automated tests
要在源代码存储库上启用测试,您必须首先创建一个
关联的 build-repository 中。你Autotest
settings 为
但是,在与 Automated Build 相同的页面上配置
您无需启用 Autobuilds 即可使用Autotest
.Autobuild 的启用时间
branch 或 tag,您根本不需要启用它。
只有配置为使用 Autobuild 的分支才会将镜像推送到 Docker 存储库,无论 Autotest 设置如何。
登录到 Docker Hub 并选择 Repositories(存储库)。
选择要启用的存储库
Autotest
上。从存储库视图中,选择 Builds 选项卡。
选择 Configure automated builds(配置自动生成)。
按照 Automated Builds 中的说明配置自动生成设置。
您至少必须配置:
- 源代码仓库
- 生成位置
- 至少一个构建规则
选择您的 Autotest 选项。
以下选项可用:
Off
:没有额外的测试版本。测试仅在配置后运行 作为自动生成的一部分。Internal pull requests
:为任何拉取请求运行测试版本 添加到与构建规则匹配的分支,但前提是拉取请求来 来自同一源存储库。Internal and external pull requests
:为任何 对与构建规则匹配的分支的拉取请求,包括当 拉取请求源自外部源存储库。
重要
出于安全考虑,对外部拉取请求的 autotest 是 限制在公共存储库上。私有镜像不会被拉取,并且 在 Docker Hub 中定义的环境变量不是 可用。自动生成将继续照常工作。
选择 保存 以保存设置,或选择 保存并生成 以保存并 运行初始测试。
查看您的测试结果
从存储库的详细信息页面中,选择 Timeline (时间轴)。
在此选项卡中,您可以看到任何待处理、正在进行、成功和失败 存储库的构建和测试运行。
您可以选择任何时间线条目来查看每个测试运行的日志。