共用方式為


測試 Terraform 程式代碼

Terraform 可讓您定義、預覽和部署雲端基礎結構。 使用 Terraform 時,您可以使用 HCL 語法來建立設定檔。 HCL 語法可讓您指定雲端提供者 (例如 Azure) 和構成雲端基礎結構的元素。 建立設定檔之後,您可以建立執行計畫,讓您先預覽基礎結構變更,之後再部署。 驗證變更之後,您可以套用執行計畫來部署基礎結構。

Terraform 是基礎結構即程式代碼 (IaC) 工具。 此工具類別是指您將 Terraform 檔案視為專案的原始程式碼。 該程式的一部分包含版本控制和原始程式碼控制。 此外,測試也應該是您程式的一部分。 本文概述可以針對 Terraform 專案執行的不同類型的測試。

實作整合測試

整合測試會驗證新引進的程式代碼變更不會中斷現有的程序代碼。 在 DevOps 中,持續整合 (CI) 是指每當程式代碼基底變更時建置整個系統的程式,例如想要將 PR 合併到 Git 存放庫的人。 下列清單包含整合測試的常見範例:

  • 靜態程式代碼分析工具,例如lint和 format。
  • 執行 terraform validate 來驗證組態檔的語法。
  • 執行 terraform 計劃 ,以確保組態如預期般運作。

實作單元測試

單元測試可確保程式的特定部分或函式運作正常。 單元測試是由功能的開發人員所撰寫。 有時稱為「測試驅動開發」或 TDD,這種測試牽涉到持續短的開發週期。 在 Terraform 項目的內容中,單元測試可以採用 使用 terraform plan 的形式,以確保產生的計劃中可用的實際值等於預期的值。

當您的 Terraform 模組開始變得更複雜時,單元測試特別有用:

  • 產生動態區塊
  • 使用迴圈
  • 計算局部變數

如同整合測試,持續整合程式中會包含許多次單元測試。

實作合規性測試

合規性測試是用來確保設定遵循您為專案定義的原則。 例如,您可以定義 Azure 資源的地緣政治命名慣例。 或者,您可能想要從定義的映射子集建立虛擬機。 合規性測試將用來強制執行這些規則。

合規性測試通常也會定義為持續整合程式的一部分。

實作端對端測試 (E2E) 測試

E2E 測試會先驗證程式,再部署到生產環境。 範例案例可能是將兩部虛擬機部署到虛擬網路的 Terraform 模組。 您可能想要防止這兩部計算機互相 Ping。 在此範例中,您可以定義測試,以在部署之前驗證預期的結果。

E2E 測試通常是三個步驟的程式。 首先,組態會套用至測試環境。 然後會執行程式代碼來驗證結果。 最後,測試環境會重新初始化或關閉(例如解除分配虛擬機)。