如何在验收测试中测试泰拉图导入?

我发现了这篇关于验收测试中测试的文章: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,

      },

    },

  })

}

但这对我来说仍然很困惑。假设将初始化一些小配置>运行,以便tf状态文件不会为空,然后在步骤(测试用例)#2期间究竟会发生什么?我的想法是,如果我们尝试在本地导入已经处于tf状态的资源(在步骤#1之后),应该有一个错误或其他东西,对吧?existing TestCase functiontf plan & tf apply


或者更令人困惑的是,这个组合测试,其中步骤#2和#4都是导入的(据我所知,步骤#3更新了在步骤#1中创建的状态中的一个属性,但步骤#2和步骤#4到底做了什么)?terraform-provider-aws


红颜莎娜
浏览 73回答 1
1回答

ABOUTYOU

测试导入的设置是正确的。添加步骤和应该就足够了。ImportStateImportStateVerify测试导入在测试步骤新导入状态函数中实现。它是如何工作的:terraform-provider-sdk上一步使用测试用例工作和状态应用 terraform 配置。如果下一步设置为 true,则使用 从测试用例状态中获取资源(或者,如果为此步骤设置了资源,则使用 或 )。ImportStateResourceNameidImportStateIdFuncImportStateId创建空 workdir,初始化新的空状态,并导入上一步中给定资源名称和 ID 的资源。不会有冲突,因为这是一个单独的空状态。如果为 true,则比较上一步和导入步骤中的资源状态,它们应该相同。ImportStateVerify如果设置了函数,请使用此函数进行自定义状态验证。如果直接状态比较无效,则可以使用此选项。ImportStateCheck放弃临时工作单位。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go