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 listas 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 returnerar. 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 modulmanifestet TestModule.psd1.

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.

Kommandots utdata visar att testet misslyckades eftersom filen TestTypes.ps1xml, som visades 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 liknar Test-ModuleManifest, men den returnerar ett booleskt värde. Funktionen returnerar $True om manifestet klarade testet och $False annat.

Funktionen använder Get-ChildItem cmdlet, 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 errorAction-parametern med värdet SilentlyContinue för att förhindra visning av eventuella fel som kommandot genererar. Det sparar även PSModuleInfo-objektet som Test-ModuleManifest returnerar i variabeln $a. Därför visas inte objektet.

I ett separat kommando visar funktionen sedan värdet för $? automatisk variabel. Om föregående kommando inte genererar något fel visar kommandot $True 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 ett namn 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 innehåller fel.