代码之家  ›  专栏  ›  技术社区  ›  Sachidanand Sharma

Azure ARM模板单元测试

  •  10
  • Sachidanand Sharma  · 技术社区  · 7 年前

    如何测试Azure ARM模板,并验证它们是否从本地VM正确写入。 我已经在Power Shell上试过了,但它只是验证而已。我想对ARM模板进行单元测试

    1 回复  |  直到 6 年前
        1
  •  15
  •   Sa Yang    7 年前

    你能做到的 单元测试 ARM模板具有 纠缠 this document .

    手臂模板示例

    正在测试的示例模板允许选择VM使用的是托管磁盘还是非托管磁盘。模板可在此处找到 https://github.com/bentaylorwork/azure-arm-templates/tree/master/disk-management-selection .

    Pester测试示例 下面的Pester测试将根据用户输入的vms磁盘应基于托管磁盘还是非托管磁盘来检查是否部署了正确的磁盘类型。文件可在此处找到: https://github.com/bentaylorwork/azure-arm-templates/blob/master/disk-management-selection/tests/unit.tests.ps1 您可以将其保存到本地计算机作为 test.ps1 文件

    运行测试

    :博客的脚本有一个错误,未定义 $parameterHash ,因此,您可以使用我的以下脚本来执行:

    <# 
        Steps to run:
        1) Login to Azure
        2) Select correct subscription
        3) Alter the path below to where you have the have saved the pester test locally
    #>
    
    $pesterParamters = @{
        Path       = 'C:\Users\Administrator\Desktop\test.ps1'
        Parameters = @{
                            templateUri                 = 'https://raw.githubusercontent.com/bentaylorwork/azure-arm-templates/master/disk-management-selection/azuredeploy.json'
                            templateParameterObject     = @{
                                resourcePrefix = 'pester'
                                adminPassword  = 'SuperSecurePlainTextPassword123!!'
                            }
                      }
    }
    
    $parameterHash= @{
                                resourcePrefix = 'pester'
                                adminPassword  = 'SuperSecurePlainTextPassword123!!'
                            }
    
    Invoke-Pester -Script $pesterParamters
    

    成功测试的示例输出

    enter image description here

    您可以在ARM模板中使用pester查看有关单元测试条件的更多详细信息 this blog .

    此外,我还建议使用一种工具来检查ARM模板: Azure ARM模板检查器。 它是一种快速而肮脏的工具,用于检查模板中使用的所有参数或变量是否已定义。您可以在中查看有关ARM模板检查器的更多详细信息 this link .