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
vrátí. 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 manifest modulu TestModule.psd1
.
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 jako 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á ErrorAction společný parametr s hodnotou SilentlyContinue k potlačení zobrazení všech chyb, které příkaz vygeneruje. Uloží také PSModuleInfo objekt, který Test-ModuleManifest
vrátí v proměnné $a. Objekt se proto nezobrazí.
V samostatném příkazu pak funkce zobrazí hodnotu $?
automatické proměnné. Pokud předchozí příkaz nevygeneruje žádnou chybu, zobrazí se $True
a $False
jinak.
Tuto funkci můžete použít v podmíněných příkazech, například těch, které můžou předcházet Import-Module
příkazu nebo příkazu, 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 názvu souboru .psd1
. 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é potrubím cesty 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.