【发布时间】:2015-09-23 15:35:47
【问题描述】:
我正在尝试在 Pester 的帮助下测试一些作为类编写的自定义 DSC 资源。但是,我正在努力研究如何使该类可用于不同的文件。这真的不是一个麻烦的问题,我也不能在 powershell 中做到这一点。我有一个模块,里面有一个类,很像 SxDeployment.psm1 文件中的以下内容
[DscResource()]
class SxWindowsService {
[void]Set(){
}
[bool]Test(){
return $true;
}
[SxWindowsService]Get(){
return $this
}
}
此模块有一个对应的 .psd1,它将 SxWindowsService 类列为“DscResourcesToExport”。它被注册为一个模块,当我执行 Get-Module -ListAvailable 时我可以看到这个模块,并且还可以对其执行 Import-Module。
我想我的问题是如何从另一个文件创建对此类的引用?
假设我有一个不同的文件 test.ps1,其中包含以下内容
Import-Module SxDeployment
$class = [SxWindowsService]::new()
我收到以下错误“无法找到类型 [SxWindowsService]。”
更新 稍加修改后,我可以通过将 .psm1 文件更改为 .ps 文件并将 import-module 语句更改为 .psm1 文件来创建该类的实例。 .\SxDeployment.ps1。所以看起来问题是如何使用 DSC 配置之外的 DSC 资源模块文件中定义的资源?
【问题讨论】:
标签: powershell dsc pester