Test-ModuleManifest

Ověřuje, že soubor manifestu modulu přesně popisuje obsah modulu.

Syntax

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-ModuleManifestpouží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í $Truese 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.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

Vstupy

String

Cestu k manifestu modulu můžete do této rutiny převést.

Výstupy

PSModuleInfo

Tato rutina vrátí objekt PSModuleInfo , který představuje modul. Vrátí tento objekt i v případě, že manifest obsahuje chyby.