dsc 资源测试

摘要

调用资源的测试操作。

语法

来自 stdin 的实例属性

<instance-properties> | dsc resource set [Options] --resource <RESOURCE>

输入选项中的实例属性

dsc resource set --input '<instance-properties>' --resource <RESOURCE>

文件中的实例属性

dsc resource set --path <instance-properties-filepath> --resource <RESOURCE>

说明

test 命令根据所需状态验证资源实例的实际状态。

此子命令测试特定 DSC 资源的一个实例。 若要测试多个资源,请使用资源组或 dsc 配置测试 命令。

要测试的实例的所需状态必须作为 JSON 或 YAML 对象传递给此命令。 对象属性必须是资源的有效属性。 实例属性可以从 stdin 传递到此命令,作为带有 --input 选项的字符串,或者从具有 --path 选项的已保存文件传递给此命令。

如果对未定义自己的测试操作的基于命令的 DSC 资源调用此命令,DSC 将执行综合测试。 综合测试将实例的所需状态的每个属性与实际状态进行比较。 综合测试使用严格、区分大小写的等效性。 如果属性的所需状态与实际状态不同,DSC 会将该属性标记为“未达到所需状态”。

此命令仅在两个条件下验证实例属性:

  1. 当 属性显式包含在所需状态输入中时。
  2. 当 属性具有默认值且未显式包含在所需状态输入中时。

示例

示例 1 - 使用 stdin 中的属性测试资源

命令测试当前用户配置单元中是否存在 Example 密钥。 它将资源实例属性指定为 JSON,并从 stdin 传递它们。

'{
    "keyPath": "HKCU\\Example",
    "_exist": true
}' | dsc resource test --resource Microsoft.Windows/Registry

示例 2 - 使用输入选项测试资源

命令测试当前用户配置单元中是否存在 Example 密钥。 它将资源实例属性指定为 JSON,并使用 输入 选项传递它们。

dsc resource test --resource Microsoft.Windows/Registry --input '{
    "keyPath": "HKCU\\Example",
    "_exist": true
}'

示例 3 - 使用 YAML 文件中的属性测试资源

命令测试当前用户配置单元中是否存在 Example 密钥。 它指定 YAML 文件的路径,该文件使用 path 选项定义资源实例属性。

keyPath: HKCU\\Example
_exist:  true
dsc resource test --resource Microsoft.Windows/Registry --path ./example.yaml

选项

-r、 --resource

指定要使用的 DSC 资源的完全限定类型名称,例如 Microsoft.Windows/Registry

完全限定的类型名称语法为: <owner>[.<group>][.<area>]/<name>,其中:

  • owner 资源的维护作者或组织。
  • grouparea 是可选名称组件,用于为资源启用命名空间。
  • 标识 name 资源管理的组件。
Type:      String
Mandatory: true

-i、 --input

指定 JSON 或 YAML 对象,其属性定义 DSC 资源实例的所需状态。 DSC 根据资源的实例架构验证对象。 如果验证失败,DSC 将引发错误。

此选项不能与 stdin 或 --path 选项上的实例属性一起使用。 选择是将实例属性通过 stdin、从具有 --path 选项的 文件中传递,还是使用 --input 选项将实例属性传递给命令。

Type:      String
Mandatory: false

-p、 --path

定义要读取为命令输入的文本文件的路径,而不是从 stdin 传递输入或使用 选项将其作为字符串 --input 传递。 指定的文件必须包含表示资源的有效属性的 JSON 或 YAML。 DSC 根据资源的实例架构验证对象。 如果验证失败,或者指定的文件不存在,DSC 将引发错误。

此选项与 --input 选项互斥。 使用此选项时,DSC 会忽略来自 stdin 的任何输入。

Type:      String
Mandatory: false

-f, --format

选项 --format 控制命令的控制台输出格式。 如果将命令输出重定向或捕获为变量,则输出始终为 JSON。

Type:         String
Mandatory:    false
DefaultValue: yaml
ValidValues:  [json, pretty-json, yaml]

-h、--help

显示当前命令或子命令的帮助。 指定此选项时,应用程序将忽略此选项之后的所有选项和参数。

Type:      Boolean
Mandatory: false

输出

此命令返回 JSON 输出,其中包括实例的所需状态、实际状态、未处于所需状态的属性列表,以及指示实例是否处于所需状态的布尔值。 有关详细信息,请参阅 dsc 资源测试结果架构