自動倉庫測試

注意

自動構建需要 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 設定配置在與 自動構建 相同的頁面上,但你無需啟用自動構建即可使用 Autotest。自動構建按分支或標籤啟用,你無需完全啟用它。

只有配置為使用自動構建的推送映象到 Docker 倉庫的分支,無論 Autotest 設定如何。

  1. 登入 Docker Hub 並選擇**倉庫**。

  2. 選擇要為其啟用 Autotest 的倉庫。

  3. 從倉庫檢視中,選擇**構建**選項卡。

  4. 選擇**配置自動構建**。

  5. 配置自動構建設定,如 自動構建 中所述。

    至少必須配置

    • 原始碼倉庫
    • 構建位置
    • 至少一個構建規則
  6. 選擇你的**Autotest**選項。

    以下選項可用

    • 關閉:沒有額外的測試構建。測試僅在配置為自動構建的一部分時執行。

    • 內部拉取請求:對與構建規則匹配的分支的任何拉取請求執行測試構建,但僅當拉取請求來自同一個原始碼倉庫時。

    • 內部和外部拉取請求:對與構建規則匹配的任何拉取請求執行測試構建,包括拉取請求起源於外部原始碼倉庫時。

    重要

    出於安全目的,對公共倉庫的外部拉取請求上的自動測試受到限制。不會拉取私有映象,並且在 Docker Hub 中定義的環境變數不可用。自動構建將照常工作。

  7. 選擇**儲存**以儲存設定,或選擇**儲存並構建**以儲存並執行初始測試。

檢查你的測試結果

從倉庫的詳細資訊頁面中,選擇**時間線**。

從此選項卡中,你可以看到倉庫的任何掛起、進行中、成功和失敗的構建和測試執行。

你可以選擇任何時間線條目以檢視每次測試執行的日誌。