自动化存储库测试

笔记

自动构建需要 Docker Pro、Team 或 Business 订阅

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

启用会Autotest出于测试目的构建映像,但不会自动将构建的映像推送到 Docker 存储库。如果要将构建的映像推送到 Docker Hub 存储库,请启用Automated Builds

设置自动化测试文件

要设置自动化测试,请创建一个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相同的页面上配置的,但是您不需要启用自动构建即可使用。自动构建是按分支或标签启用的,您根本不需要启用它。Autotest

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

  1. 登录 Docker Hub 并选择Repositories

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

  3. 从存储库视图中,选择“构建”选项卡。

  4. 选择配置自动构建

  5. 配置自动构建设置,如自动构建中所述。

    您至少必须配置:

    • 源代码存储库
    • 构建位置
    • 至少一项构建规则
  6. 选择您的自动测试选项。

    可以使用以下选项:

    • Off:没有额外的测试版本。仅当测试被配置为自动构建的一部分时才会运行。

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

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

    重要的

    出于安全目的,外部拉取请求的自动测试仅限于公共存储库。私有镜像不会被拉取,并且 Docker Hub 中定义的环境变量不可用。自动化构建继续照常工作。

  7. 选择“保存”以保存设置,或选择“保存并构建”以保存并运行初始测试。

检查您的测试结果

从存储库的详细信息页面中,选择Timeline

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

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