我發現了這篇關于驗收測試中測試的文章:tf importfunc TestAccExampleThing_basic(t *testing.T) { /* ... potentially existing acceptance testing logic ... */ resource.ParallelTest(t, resource.TestCase{ /* ... existing TestCase functions ... */ Steps: []resource.TestStep{ /* ... existing TestStep ... */ { ResourceName: "example_thing.test", ImportState: true, ImportStateVerify: true, }, }, })}但這對我來說仍然很困惑。假設將初始化一些小配置>運行,以便tf狀態文件不會為空,然后在步驟(測試用例)#2期間究竟會發生什么?我的想法是,如果我們嘗試在本地導入已經處于tf狀態的資源(在步驟#1之后),應該有一個錯誤或其他東西,對吧?existing TestCase functiontf plan & tf apply或者更令人困惑的是,這個組合測試,其中步驟#2和#4都是導入的(據我所知,步驟#3更新了在步驟#1中創建的狀態中的一個屬性,但步驟#2和步驟#4到底做了什么)?terraform-provider-aws
1 回答

ABOUTYOU
TA貢獻1812條經驗 獲得超5個贊
測試導入的設置是正確的。添加步驟和應該就足夠了。ImportState
ImportStateVerify
測試導入在測試步驟新導入狀態
函數中實現。它是如何工作的:terraform-provider-sdk
上一步使用測試用例工作和狀態應用 terraform 配置。
如果下一步設置為 true,則使用 從測試用例狀態中獲取資源(或者,如果為此步驟設置了資源,則使用 或 )。
ImportState
ResourceName
id
ImportStateIdFunc
ImportStateId
創建空 workdir,初始化新的空狀態,并導入上一步中給定資源名稱和 ID 的資源。不會有沖突,因為這是一個單獨的空狀態。
如果為 true,則比較上一步和導入步驟中的資源狀態,它們應該相同。
ImportStateVerify
如果設置了函數,請使用此函數進行自定義狀態驗證。如果直接狀態比較無效,則可以使用此選項。
ImportStateCheck
放棄臨時工作單位。
- 1 回答
- 0 關注
- 79 瀏覽
添加回答
舉報
0/150
提交
取消