自动仓库测试

注意

自动化构建需要 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` 设置与自动化构建位于同一页面,但您无需启用自动构建即可使用自动测试。自动构建是按分支或标签启用的,您根本不需要启用它。

只有配置为使用自动构建的分支才会将镜像推送到 Docker 仓库,无论自动测试设置如何。

  1. 登录 Docker Hub 并选择 My Hub > Repositories

  2. 选择您要启用 `Autotest` 的仓库。

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

  4. 选择 Configure automated builds

  5. 按照自动化构建中的说明配置自动化构建设置。

    您至少必须配置

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

    以下选项可用

    • Off:无附加测试构建。测试仅在作为自动化构建的一部分配置时运行。

    • Internal pull requests:对匹配构建规则的分支的任何拉取请求运行测试构建,但仅当拉取请求来自同一源仓库时。

    • Internal and external pull requests:对匹配构建规则的分支的任何拉取请求运行测试构建,包括当拉取请求源自外部源仓库时。

    重要

    出于安全目的,公共仓库上的外部拉取请求的自动测试受到限制。私有镜像不会被拉取,并且 Docker Hub 中定义的环境变量不可用。自动化构建仍按通常方式工作。

  7. 选择 Save 以保存设置,或选择 Save and build 以保存并运行初始测试。

检查您的测试结果

从仓库的详细信息页面,选择 Timeline

从此选项卡,您可以查看仓库的任何待处理、进行中、成功和失败的构建和测试运行。

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

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.