自动化仓库测试

注意

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

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

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

设置自动化测试文件

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

例如:

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

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

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

注意

只有sutservice 和depends_on是 开始。如果您的服务会轮询其他服务中的更改,请确保 要将轮询服务包含在depends_on列表以确保您的所有服务都已启动。

您可以定义多个docker-compose.test.yml文件(如果需要)。任何文件 结尾为.test.yml用于测试,并且测试按顺序运行。 您还可以使用自定义构建挂钩来进一步自定义测试行为。

注意

如果启用 Automated builds(自动生成),它们还会运行定义的任何测试 在test.yml文件。

在仓库上启用 Automated tests

要在源代码存储库上启用测试,您必须首先创建一个 关联的 build-repository 中。你Autotestsettings 为 但是,在与 Automated Build 相同的页面上配置 您无需启用 Autobuilds 即可使用Autotest.Autobuild 的启用时间 branch 或 tag,您根本不需要启用它。

只有配置为使用 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 (时间轴)。

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

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