自动化仓库测试

注意

自动化构建需要一个 Docker Pro、Team 或 Business 订阅。

Docker Hub 可以自动测试对源代码存储库的更改 使用容器。您可以在任何 Docker Hub 存储库上启用 要对源代码存储库的每个拉取请求运行测试,请创建一个 持续集成测试服务。Autotest

启用此选项会构建用于测试目的的镜像,但不会 自动将构建的镜像推送到 Docker 仓库。如果您想推送 构建的镜像上传到您的 Docker Hub 存储库,启用 Automated BuildsAutotest

设置自动化测试文件

要设置自动测试,请创建一个文件,该文件 定义列出要运行的测试的服务。 该文件应位于 包含用于构建镜像的 Dockerfile。docker-compose.test.ymlsutdocker-compose.test.yml

例如:

services:
  sut:
    build: .
    command: run_tests.sh

上面的示例构建了存储库,并在其中运行文件 使用构建镜像的容器。run_tests.sh

您可以在此文件中定义任意数量的链接服务。唯一的要求 是定义的。其返回代码确定测试是否通过。 如果服务返回 ,则测试通过,否则失败。sutsut0

注意

只有 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,您根本不需要启用它。AutotestAutotest

只有配置为使用 Autobuild 的分支才会将镜像推送到 Docker 存储库,无论 Autotest 设置如何。

  1. 登录到 Docker Hub 并选择 Repositories(存储库)。

  2. 选择要启用的存储库。Autotest

  3. 从存储库视图中,选择 Builds 选项卡。

  4. 选择 Configure automated builds(配置自动生成)。

  5. 按照 Automated Builds 中的说明配置自动生成设置。

    您至少必须配置:

    • 源代码仓库
    • 生成位置
    • 至少一个构建规则
  6. 选择您的 Autotest 选项。

    以下选项可用:

    • Off:没有额外的测试版本。测试仅在配置后运行 作为自动生成的一部分。

    • Internal pull requests:为任何拉取请求运行测试版本 添加到与构建规则匹配的分支,但前提是拉取请求来 来自同一源存储库。

    • Internal and external pull requests:为任何 对与构建规则匹配的分支的拉取请求,包括当 拉取请求源自外部源存储库。

    重要

    出于安全考虑,对外部拉取请求的 autotest 是 限制在公共存储库上。私有镜像不会被拉取,并且 在 Docker Hub 中定义的环境变量不是 可用。自动生成将继续照常工作。

  7. 选择 保存 以保存设置,或选择 保存并生成 以保存并 运行初始测试。

查看您的测试结果

从存储库的详细信息页面中,选择 Timeline (时间轴)。

在此选项卡中,您可以看到任何待处理、正在进行、成功和失败 存储库的构建和测试运行。

您可以选择任何时间线条目来查看每个测试运行的日志。