所有文件的测试用例
本文介绍了使用模板测试工具包针对所有 JavaScript 对象表示法 (JSON) 文件运行的测试。 这些示例包括测试名称以及通过或未通过测试的代码示例 。 有关如何运行测试或如何运行特定测试的详细信息,请参阅测试参数。
使用有效的 JSON 语法
测试名称:JSONFiles Should Be Valid
此测试检查所有 JSON 文件是否包含有效的语法。 例如,azuredeploy.json、azuredeploy.parameters.json 或 createUiDefinition.js 文件 。 如果测试失败,你将看到其他测试的失败或警告,或者 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.js 使用没有 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": "chinanorth"
}
}
}
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()]"
}
}
}
后续步骤
- 若要了解测试工具包,请参阅使用 ARM 模板测试工具包。
- 有关 ARM 模板测试,请参阅 ARM 模板的测试用例
- 若要测试参数文件,请参阅参数文件的测试用例。
- 有关 createUiDefinition 测试,请参阅 createUiDefinition.json 的测试用例