Test-ModuleManifest
Ověřuje, že soubor manifestu modulu přesně popisuje obsah modulu.
Syntaxe
Test-ModuleManifest
[-Path] <String>
[<CommonParameters>]
Description
Rutina Test-ModuleManifest
ověří, že soubory uvedené v souboru manifestu modulu (.psd1
) jsou ve skutečnosti v zadaných cestách.
Tato rutina je navržená tak, aby autorům modulů pomohla otestovat soubory manifestu. Uživatelé modulu můžou tuto rutinu použít také ve skriptech a příkazech k detekci chyb před spuštěním skriptů, které závisí na modulu.
Test-ModuleManifest
vrátí objekt, který představuje modul. Jedná se o stejný typ objektu, který Get-Module
vrací. Pokud některé soubory nejsou v umístěních zadaných v manifestu, rutina také vygeneruje chybu pro každý chybějící soubor.
Příklady
Příklad 1: Testování manifestu
Test-ModuleManifest -Path "$pshome\Modules\TestModule.psd1"
Tento příkaz testuje TestModule.psd1
manifest modulu.
Příklad 2: Testování manifestu pomocí kanálu
"$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 : {}
Tento příkaz používá operátor kanálu (|
) k odeslání řetězce cesty do Test-ModuleManifest
.
Výstup příkazu ukazuje, že test selhal, protože soubor TestTypes.ps1xml, který byl uveden v manifestu, nebyl nalezen.
Příklad 3: Napsání funkce pro otestování manifestu modulu
function Test-ManifestBool ($path)
{$a = dir $path | Test-ModuleManifest -ErrorAction SilentlyContinue; $?}
Tato funkce je podobná Test-ModuleManifest
, ale vrátí logickou hodnotu. Funkce vrátí $True
, pokud manifest prošel testem a $False
jinak.
Funkce používá rutinu Get-ChildItem, alias = dir, k získání manifestu modulu určeného proměnnou $path
. Příkaz používá operátor kanálu (|
) k předání objektu souboru do Test-ModuleManifest
.
Test-ModuleManifest
používá společný parametr ErrorAction s hodnotou SilentlyContinue k potlačení zobrazení všech chyb, které příkaz vygeneruje. Také uloží PSModuleInfo objekt, který Test-ModuleManifest
vrací v $a proměnné. Objekt se proto nezobrazí.
Potom funkce v samostatném příkazu zobrazí hodnotu $?
automatické proměnné. Pokud předchozí příkaz nevygeneruje žádnou chybu, zobrazí $True
se příkaz a $False
jinak.
Tuto funkci můžete použít v podmíněných příkazech, například v příkazech, které můžou před příkazem Import-Module
nebo příkazem, který modul používá.
Parametry
-Path
Určuje cestu a název souboru manifestu. Zadejte volitelnou cestu a název souboru manifestu modulu, který má příponu .psd1
názvu souboru. Výchozí umístění je aktuální adresář. Podporují se zástupné znaky, ale musí se přeložit na jeden soubor manifestu modulu.
Tento parametr je povinný. Můžete také převést cestu k Test-ModuleManifest
.
Typ: | String |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | True |
Vstupy
Cestu k manifestu modulu můžete do této rutiny převést.
Výstupy
Tato rutina vrátí objekt PSModuleInfo , který představuje modul. Vrátí tento objekt i v případě, že manifest obsahuje chyby.