ペスターの助けを借りて、クラスとして記述されたいくつかのカスタム DSC リソースをテストしようとしています。ただし、クラスを別のファイルで使用できるようにする方法を見つけるのに苦労しています。これは実際には厄介な問題ではありません.powershellでもこれを行うことはできません. SxDeployment.psm1 ファイルの次のようなクラスを含むモジュールがあります。
[DscResource()]
class SxWindowsService {
[void]Set(){
}
[bool]Test(){
return $true;
}
[SxWindowsService]Get(){
return $this
}
}
このモジュールには、SxWindowsService クラスを 'DscResourcesToExport' としてリストしている対応する .psd1 があります。モジュールとして登録されています。Get-Module -ListAvailable を実行するとこのモジュールが表示され、Import-Module を実行することもできます。
私の質問は、別のファイルからこのクラスへの参照を作成するにはどうすればよいですか?
次のような別のファイル test.ps1 があるとします
Import-Module SxDeployment
$class = [SxWindowsService]::new()
「タイプ [SxWindowsService] が見つかりません」というエラーが表示されます。
更新 もう少しいじくり回した後、.psm1 ファイルを .ps ファイルに変更し、import-module ステートメントを . .\SxDeployment.ps1. 問題は、DSC 構成の外部にある DSC リソース モジュール ファイルで定義されたリソースをどのように消費するかということです。