如何在 Azure DevOps 管道中为 运行 ARM-TTK 测试的 *.json 文件指定两个路径

How to specify two paths for *.json files for running ARM-TTK Tests in an Azure DevOps pipeline

我正在 运行 在 Azure Devops 中使用 ARM-TTK 进行单元测试,我有一些选择性单元测试,我想从所需位置 运行。 我拥有 .JSON 文件的两个位置是:ARM_Templates/IaaS 和 ARM_Templates/PaaS。 ARM_Templates 父文件夹中还有其他文件夹,但我不想将它们包含在测试中。 因此,我在 YAML 管道中的任务之一如下:

- task: PowerShell@2
  displayName: 'Run deploymentTemplate tests from ARM Template Tester Toolkit'
  inputs:
    condition: always()
    targetType: 'inline'
    script: |
      cd D:\a\s\arm-template-toolkit\arm-ttk
      Import-Module ./arm-ttk.psd1
      get-childitem $(System.DefaultWorkingDirectory)/ArmTemplates.Templates/*.json | Test-AzTemplate  -test "Resources Should Have Location","Location Should Not Be Hardcoded", "apiversions-should-be-recent"
    pwsh: true
    workingDirectory: '$(System.DefaultWorkingDirectory)/arm-template-toolkit/arm-ttk'

那么如何在任务中的 get-childitem cmdlet 中指定两个不同的位置,以便 ARM-TTK 从两个文件夹位置选取 *.json 文件

在 'Get-ChildItem' 中,您可以传递多个路径,如下所示 Get-ChildItem –path c:\fso,c:\music。请同时检查此 。所以在你的情况下它将是

- task: PowerShell@2
  displayName: 'Run deploymentTemplate tests from ARM Template Tester Toolkit'
  inputs:
    condition: always()
    targetType: 'inline'
    script: |
      cd D:\a\s\arm-template-toolkit\arm-ttk
      Import-Module ./arm-ttk.psd1
      get-childitem $(System.DefaultWorkingDirectory)/ARM_Templates/IaaS/*.json,$(System.DefaultWorkingDirectory)/ARM_Templates/PaaS/*.json | Test-AzTemplate  -test "Resources Should Have Location","Location Should Not Be Hardcoded", "apiversions-should-be-recent"
    pwsh: true
    workingDirectory: '$(System.DefaultWorkingDirectory)/arm-template-toolkit/arm-ttk'