自动化仓库测试
注意
自动化构建需要一个 Docker Pro、Team 或 Business 订阅。
Docker Hub 可以自动测试对源代码存储库的更改
使用容器。您可以在任何 Docker Hub 存储库上启用
要对源代码存储库的每个拉取请求运行测试,请创建一个
持续集成测试服务。Autotest
启用此选项会构建用于测试目的的镜像,但不会
自动将构建的镜像推送到 Docker 仓库。如果您想推送
构建的镜像上传到您的 Docker Hub 存储库,启用 Automated Builds。Autotest
设置自动化测试文件
要设置自动测试,请创建一个文件,该文件
定义列出要运行的测试的服务。
该文件应位于
包含用于构建镜像的 Dockerfile。docker-compose.test.yml
sut
docker-compose.test.yml
例如:
services:
sut:
build: .
command: run_tests.sh
上面的示例构建了存储库,并在其中运行文件
使用构建镜像的容器。run_tests.sh
您可以在此文件中定义任意数量的链接服务。唯一的要求
是定义的。其返回代码确定测试是否通过。
如果服务返回 ,则测试通过,否则失败。sut
sut
0
注意
只有
depends_on
中列出的服务和所有其他服务是 开始。如果您的服务会轮询其他服务中的更改,请确保 将轮询服务包含在depends_on
列表中,以确保您的所有服务都已启动。sut
如果需要,您可以定义多个文件。任何文件
end in 用于测试,并且测试按顺序运行。
您还可以使用自定义构建挂钩来进一步自定义测试行为。docker-compose.test.yml
.test.yml
注意
如果启用 Automated builds(自动生成),它们还会运行定义的任何测试 在文件中。
test.yml
在仓库上启用 Automated tests
要在源代码存储库上启用测试,您必须首先创建一个
关联的 build-repository 中。您的设置包括
但是,在与 Automated Build 相同的页面上配置
您无需启用 Autobuilds 即可使用 。Autobuild 的启用时间
branch 或 tag,您根本不需要启用它。Autotest
Autotest
只有配置为使用 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 (时间轴)。
在此选项卡中,您可以看到任何待处理、正在进行、成功和失败 存储库的构建和测试运行。
您可以选择任何时间线条目来查看每个测试运行的日志。