自動化儲存庫測試

注意

自動化建置需要 Docker Pro、Team 或 Business 訂閱。

Docker Hub 可以使用容器自動測試您原始程式碼儲存庫的變更。您可以在任何 Docker Hub 儲存庫上啟用 Autotest,以便在每次對原始程式碼儲存庫發出提取請求(Pull Request)時執行測試,從而建立持續整合測試服務。

啟用 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 結尾的檔案都會用於測試,且測試會依序執行。您也可以使用自訂建置掛鉤 (Custom Build Hooks) 來進一步自訂您的測試行為。

注意

如果您啟用了自動化建置,它們也會執行 test.yml 檔案中定義的所有測試。

啟用儲存庫的自動化測試

若要在原始程式碼儲存庫上啟用測試,您必須先在 Docker Hub 中建立一個關聯的建置儲存庫。您的 Autotest 設定與自動化建置是在同一個頁面上進行配置,不過您無需為了使用 Autotest 而啟用自動化建置。自動化建置是按分支或標籤進行啟用的,您不一定需要啟用它。

無論 Autotest 設定為何,只有設定為使用自動化建置的分支才會將映像檔推送到 Docker 儲存庫。

  1. 登入 Docker Hub 並選擇 My Hub > Repositories

  2. 選擇您想要啟用 Autotest 的儲存庫。

  3. 從儲存庫檢視畫面中,選擇 Builds 標籤頁。

  4. 選擇 Configure automated builds

  5. 按照自動化建置中的說明設定自動化建置參數。

    您至少必須設定以下項目:

    • 原始程式碼儲存庫
    • 建置位置
    • 至少一條建置規則
  6. 選擇您的 Autotest 選項。

    提供以下選項:

    • Off:不進行額外的測試建置。測試僅在設定為自動化建置的一部分時才會執行。

    • Internal pull requests:針對匹配建置規則的分支所發出的任何提取請求(Pull Request)執行測試建置,但僅限於來自相同原始儲存庫的提取請求。

    • 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.