Test-ModuleManifest

Verifierar att en modulmanifestfil korrekt beskriver innehållet i en modul.

Syntax

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

Description

Cmdleten Test-ModuleManifest verifierar att filerna som visas i modulmanifestfilen (.psd1) faktiskt finns i de angivna sökvägarna.

Den här cmdleten är utformad för att hjälpa modulförfattare att testa sina manifestfiler. Modulanvändare kan också använda den här cmdleten i skript och kommandon för att identifiera fel innan de kör skript som är beroende av modulen.

Test-ModuleManifest returnerar ett objekt som representerar modulen. Det här är samma typ av objekt som Get-Module returneras. Om några filer inte finns på de platser som anges i manifestet genererar cmdleten också ett fel för varje fil som saknas.

Exempel

Exempel 1: Testa ett manifest

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

Det här kommandot testar TestModule.psd1 modulmanifestet.

Exempel 2: Testa ett manifest med hjälp av pipelinen

"$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     : {}

Det här kommandot använder en pipelineoperator (|) för att skicka en sökvägssträng till Test-ModuleManifest.

Kommandoutdata visar att testet misslyckades eftersom filen TestTypes.ps1xml, som angavs i manifestet, inte hittades.

Exempel 3: Skriva en funktion för att testa ett modulmanifest

function Test-ManifestBool ($path)

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

Den här funktionen är som Test-ModuleManifest, men returnerar ett booleskt värde. Funktionen returnerar $True om manifestet klarade testet och $False annars.

Funktionen använder cmdleten Get-ChildItem, alias = dir, för att hämta modulmanifestet som anges av variabeln $path . Kommandot använder en pipelineoperator (|) för att skicka filobjektet till Test-ModuleManifest.

Test-ModuleManifest använder den vanliga parametern ErrorAction med värdet SilentlyContinue för att förhindra visning av eventuella fel som kommandot genererar. Det sparar även PSModuleInfo-objektet som Test-ModuleManifest returneras i variabeln $a. Därför visas inte objektet.

I ett separat kommando visar funktionen sedan värdet för den $? automatiska variabeln. Om det föregående kommandot inte genererar något fel, visar $Truekommandot , och $False på annat sätt.

Du kan använda den här funktionen i villkorsstyrda instruktioner, till exempel de som kan föregå ett Import-Module kommando eller ett kommando som använder modulen.

Parametrar

-Path

Anger en sökväg och ett filnamn för manifestfilen. Ange en valfri sökväg och namnet på modulmanifestfilen som har filnamnstillägget .psd1 . Standardplatsen är den aktuella katalogen. Jokertecken stöds, men måste matchas till en enda modulmanifestfil. Den här parametern krävs. Du kan också skicka en sökväg till Test-ModuleManifest.

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

Indata

String

Du kan skicka sökvägen till ett modulmanifest till den här cmdleten.

Utdata

PSModuleInfo

Den här cmdleten returnerar ett PSModuleInfo-objekt som representerar modulen. Det returnerar det här objektet även om manifestet har fel.