Sdílet prostřednictvím


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 $Truea $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

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.