Udostępnij za pośrednictwem


Przypadki testowe dla wszystkich plików

W tym artykule opisano testy uruchamiane przy użyciu zestawu narzędzi do testowania szablonu dla wszystkich plików JSON (JavaScript Object Notation). Przykłady obejmują nazwy testów i przykłady kodu, które przechodzą testy lub kończą się niepowodzeniem. Aby uzyskać więcej informacji na temat uruchamiania testów lub uruchamiania określonego testu, zobacz Parametry testu.

Użyj prawidłowej składni JSON

Nazwa testu: Pliki JSON powinny być prawidłowe

Ten test sprawdza, czy wszystkie pliki JSON zawierają prawidłową składnię. Na przykład pliki azuredeploy.json, azuredeploy.parameters.json lub createUiDefinition.json . Jeśli test zakończy się niepowodzeniem, zobaczysz błędy lub ostrzeżenia dotyczące innych testów lub analizowania kodu JSON.

Przykład pliku szablonu

Poniższy przykład kończy się niepowodzeniem, ponieważ w azuredeploy.json brakuje wiodącego nawiasu klamrowego ({) z parameters, comboBoxi 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')]"
    }
  }
}

Poniższy przykład przekazuje.

{
  "$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')]"
    }
  }
}

Przykład pliku parametrów

Poniższy przykład kończy się niepowodzeniem , ponieważ azuredeploy.parameters.json używa parametru bez parametru value.

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

Poniższy przykład przekazuje.

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

Przykład tworzenia elementu CreateUiDefintion

Poniższy przykład kończy się niepowodzeniem, ponieważ w createUiDefinition.json w sekcji brakuje wiodącego nawiasu klamrowego 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()]"
    }
  }
}

Poniższy przykład przekazuje.

{
  "$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()]"
    }
  }
}

Następne kroki