儲存庫自動化測試

**注意**

自動化建置需要 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. 選擇儲存以儲存設定,或選擇儲存並建置以儲存並執行初始測試。

檢查您的測試結果

從儲存庫的詳細資訊頁面中,選擇時間軸

在此索引標籤中,您可以看到儲存庫中任何待處理、進行中、成功和失敗的建置和測試執行。

您可以選擇任何時間軸項目來檢視每次測試執行的記錄。