GitLab: 使用 Testcontainers 執行測試

本文件是CI/CD指南的一部分。請在此處查看完整指南:如何使用 GitLab CI/CD

👋 歡迎來到 Stackhero 文件中心!

Stackhero 提供即時可用的 GitLab cloud 解決方案,專為需要快速、安全且可擴展環境的團隊設計:

  • 無限制的使用者、儲存庫、資料傳輸與 CI/CD 處理時間,讓您享有完全彈性。
  • 只需一鍵即可輕鬆更新,確保您的環境隨時保持最新,無需停機。
  • 自訂網域名稱並以 HTTPS 加密(例如 https://git.your-company.com),提升專業形象與安全性。
  • 在您專屬的私有基礎架構上,享有穩定效能與強大安全性。完全隔離,無需擔心資源干擾。
  • 可選擇託管地點:🇪🇺 歐洲🇺🇸 美國,滿足您的合規或延遲需求。

快速上手,專注於您的程式碼。Stackhero 的 GitLab cloud hosting 解決方案約 5 分鐘即可啟用。

如果您的測試套件使用 Testcontainers,這是一個能在測試期間以可丟棄的 Docker container 啟動真實服務(如資料庫、訊息代理等)的函式庫,前述設定已經涵蓋所需。請保留 docker:29-dind 服務與這兩個變數:Testcontainers 會利用 DOCKER_HOST 連線到 Docker daemon 並與其啟動的 container 溝通,無需額外設定。

未設定 DOCKER_HOST 是 CI 中 Testcontainers 失敗最常見的原因。此時函式庫會退回使用 runner 掛載的 Docker socket,導致無法連線到自己的測試 container,通常會出現 Ryuk helper container 逾時的錯誤。