Тестовые случаи для всех файлов

В этой статье описываются тесты, выполняемые набором средств тестирования шаблона для всех файлов нотации объектов JavaScript (JSON). Примеры включают тестовые имена и примеры кода, которые влияют на результат прохождения тестов (пройден или не пройден). Дополнительные сведения о выполнении тестов или какого-то определенного теста см. в разделе Параметры тестирования.

Использование допустимого синтаксиса JSON

Имя теста: JSON-файлы должны быть допустимыми

Этот тест проверяет, содержат ли все JSON-файлы допустимый синтаксис. Например, файлы azuredeploy.json, azuredeploy.parameters.json или createUiDefinition.json. Если тест не пройден, отобразятся ошибки или предупреждения для этих тестов или сведения о синтаксическом анализе JSON.

Пример файла шаблона

Следующий пример не проходит тест, поскольку в файле azuredeploy.json в parameters, comboBox и location отсутствует открывающая фигурная скобка ({).

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters":
    "comboBox":
      "type": "string"
    },
    "location":
      "type": "string"
    }
  },
  "resources": [],
  "outputs": {
    "comboBox": {
      "type": "string",
      "value": "[parameters('comboBox')]"
    },
    "location": {
      "type": "string",
      "value": "[parameters('location')]"
    }
  }
}

Следующий пример проходит тест.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "comboBox": {
      "type": "string"
    },
    "location": {
      "type": "string"
    }
  },
  "resources": [],
  "outputs": {
    "comboBox": {
      "type": "string",
      "value": "[parameters('comboBox')]"
    },
    "location": {
      "type": "string",
      "value": "[parameters('location')]"
    }
  }
}

Пример файла параметров

Следующий пример не проходит тест, поскольку в файле azuredeploy.parameters.json используется параметр без value.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "value":
    }
  }
}

Следующий пример проходит тест.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "value": "westus"
    }
  }
}

Пример CreateUiDefintion

Следующий пример не проходит тест, поскольку в файле createUiDefinition.json в разделе outputs отсутствует открывающая фигурная скобка ({).

{
  "$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
  "handler": "Microsoft.Azure.CreateUIDef",
  "version": "0.1.2-preview",
  "parameters": {
    "basics": [
      {
        "name": "comboBox",
        "type": "Microsoft.Common.DropDown",
        "label": "Example drop down",
        "toolTip": "This is a tool tip"
      }
    ],
    "steps": [],
    "outputs":
      "comboBox": "[basics('comboBox')]",
      "location": "[location()]"
    }
  }
}

Следующий пример проходит тест.

{
  "$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
  "handler": "Microsoft.Azure.CreateUIDef",
  "version": "0.1.2-preview",
  "parameters": {
    "basics": [
      {
        "name": "comboBox",
        "type": "Microsoft.Common.DropDown",
        "label": "Example drop down",
        "toolTip": "This is a tool tip"
      }
    ],
    "steps": [],
    "outputs": {
      "comboBox": "[basics('comboBox')]",
      "location": "[location()]"
    }
  }
}

Следующие шаги