次の方法で共有


Test-ModuleManifest

モジュールのマニフェスト ファイルにモジュールの内容が正確に記述されていることを確認します。

構文

Test-ModuleManifest
    [-Path] <String>
    [<CommonParameters>]

説明

Test-ModuleManifest コマンドレットは、モジュール マニフェスト (.psd1) ファイルに一覧表示されているファイルが実際に指定されたパスにあることを確認します。

このコマンドレットは、モジュールの作成者がマニフェスト ファイルをテストできるようにすることを目的として設計されています。 モジュール ユーザーは、スクリプトとコマンドでこのコマンドレットを使用して、モジュールに依存するスクリプトを実行する前にエラーを検出することもできます。

Test-ModuleManifest は、モジュールを表すオブジェクトを返します。 これは、 Get-Module が返すのと同じ種類のオブジェクトです。 マニフェストに指定された場所にいずれかのファイルが存在しない場合、不足しているファイルごとにエラーが生成されます。

例 1: マニフェストをテストする

Test-ModuleManifest -Path "$pshome\Modules\TestModule.psd1"

このコマンドは、 TestModule.psd1 モジュール マニフェストをテストします。

例 2: パイプラインを使用してマニフェストをテストする

"$pshome\Modules\TestModule.psd1" | test-modulemanifest

Test-ModuleManifest : The specified type data file 'C:\Windows\System32\Wi
ndowsPowerShell\v1.0\Modules\TestModule\TestTypes.ps1xml' could not be processed because the file was not found. Please correct the path and try again.
At line:1 char:34
+ "$pshome\Modules\TestModule.psd1" | test-modulemanifest <<<<
+ CategoryInfo          : ResourceUnavailable: (C:\Windows\System32\WindowsPowerShell\v1.0\Modules\TestModule\TestTypes.ps1xml:String) [Test-ModuleManifest], FileNotFoundException
+ FullyQualifiedErrorId : Modules_TypeDataFileNotFound,Microsoft.PowerShell.Commands.TestModuleManifestCommandName

Name              : TestModule
Path              : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\TestModule\TestModule.psd1
Description       :
Guid              : 6f0f1387-cd25-4902-b7b4-22cff6aefa7b
Version           : 1.0
ModuleBase        : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\TestModule
ModuleType        : Manifest
PrivateData       :
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {}
ExportedVariables : {}
NestedModules     : {}

このコマンドでは、パイプライン演算子 (|) を使用して、パス文字列を Test-ModuleManifestに送信します。

コマンド出力にはテストが失敗したことが示されています。これは、マニフェストに示されている TestTypes.ps1xml ファイルが見つからなかったためです。

例 3: モジュール マニフェストをテストする関数を記述する

function Test-ManifestBool ($path)

{$a = dir $path | Test-ModuleManifest -ErrorAction SilentlyContinue; $?}

この関数は Test-ModuleManifestに似ていますが、ブール値を返します。 この関数は、マニフェストがテストに合格した場合は $True を返し、それ以外の場合は $False 返します。

この関数は、get-ChildItem コマンドレット alias = dir を使用して、 $path 変数で指定されたモジュール マニフェストを取得します。 このコマンドでは、パイプライン演算子 (|) を使用して、ファイル オブジェクトを Test-ModuleManifestに渡します。

Test-ModuleManifest では、 ErrorAction 共通パラメーターと値が SilentlyContinue を使用して、コマンドによって生成されるエラーの表示を抑制します。 また、PSModuleInfoTest-ModuleManifestが返すオブジェクトを$a変数に保存します。 そのため、オブジェクトは表示されません。

その後、別のコマンドで、 $? 自動変数の値が表示されます。 前のコマンドでエラーが生成されない場合、コマンドは $Trueを表示し、それ以外の場合は $False

この関数は、 Import-Module コマンドやモジュールを使用するコマンドの前にあるような条件ステートメントで使用できます。

パラメーター

-Path

マニフェスト ファイルのパスとファイル名を指定します。 .psd1 ファイル名拡張子を持つモジュール マニフェスト ファイルの省略可能なパスと名前を入力します。 既定の場所は、現在のディレクトリです。 ワイルドカード文字はサポートされていますが、1 つのモジュール マニフェスト ファイルに解決する必要があります。 このパラメーターは必須です。 パスをパイプして Test-ModuleManifestすることもできます。

型:String
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

入力

String

モジュール マニフェストへのパスをこのコマンドレットにパイプできます。

出力

PSModuleInfo

このコマンドレットは、モジュールを表す PSModuleInfo オブジェクトを返します。 このオブジェクトは、マニフェストにエラーがある場合でも返されます。