我发现这篇关于验收测试中的测试的文章tf import:
func 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,
},
},
})
}
Run Code Online (Sandbox Code Playgroud)
但这对我来说仍然很困惑。假设existing TestCase function将初始化一些小配置并运行,tf plan & tf apply以便 tf 状态文件不会为空,那么在步骤(测试用例)#2 期间到底会发生什么?我的想法是,如果我们尝试导入本地已经处于 tf 状态的资源(在第 1 步之后),应该会出现错误或其他问题,对吗?
或者更令人困惑的是,这个组合测试其中步骤 #2 和 #4 都是导入的terraform-provider-aws(据我所知,步骤 #3 更新了我们在步骤 #1 中创建的状态中的属性之一,但步骤到底是什么#2 和步骤#4 一样)?
小智 5
您的测试导入设置是正确的。使用ImportState和添加步骤ImportStateVerify就足够了。
测试导入是在terraform-provider-sdk testStepNewImportState 函数中实现的。怎么运行的:
ImportState为 true,则使用从测试用例状态ResourceName获取资源(或者使用或如果为此步骤设置了它们)。idImportStateIdFuncImportStateIdImportStateVerify为 true,则比较上一步和导入步骤的资源状态,它们应该相同。ImportStateCheck设置了函数,则使用此函数进行自定义状态验证。这可以在直接状态比较无效的情况下使用。| 归档时间: |
|
| 查看次数: |
1025 次 |
| 最近记录: |