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 $True
kommandot , 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
.
Typ: | String |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | True |
Indata
Du kan skicka sökvägen till ett modulmanifest till den här cmdleten.
Utdata
Den här cmdleten returnerar ett PSModuleInfo-objekt som representerar modulen. Det returnerar det här objektet även om manifestet har fel.