Delen via


Test-ModuleManifest

Controleert of een manifestbestand van een module de inhoud van een module nauwkeurig beschrijft.

Syntaxis

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

Description

De Test-ModuleManifest cmdlet controleert of de bestanden die worden vermeld in het bestand modulemanifest (.psd1) daadwerkelijk in de opgegeven paden staan.

Deze cmdlet is ontworpen om moduleauteurs te helpen hun manifestbestanden te testen. Modulegebruikers kunnen deze cmdlet ook gebruiken in scripts en opdrachten om fouten te detecteren voordat ze scripts uitvoeren die afhankelijk zijn van de module.

Test-ModuleManifest retourneert een object dat de module vertegenwoordigt. Dit is hetzelfde type object dat Get-Module retourneert. Als bestanden zich niet op de locaties bevinden die zijn opgegeven in het manifest, genereert de cmdlet ook een fout voor elk ontbrekend bestand.

Voorbeelden

Voorbeeld 1: Een manifest testen

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

Met deze opdracht wordt het modulemanifest TestModule.psd1 getest.

Voorbeeld 2: Een manifest testen met behulp van de pijplijn

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

Met deze opdracht wordt een pijplijnoperator (|) gebruikt om een padtekenreeks te verzenden naar Test-ModuleManifest-.

In de uitvoer van de opdracht ziet u dat de test is mislukt, omdat het bestand TestTypes.ps1xml, dat in het manifest is vermeld, niet is gevonden.

Voorbeeld 3: Een functie schrijven om een modulemanifest te testen

function Test-ManifestBool ($path)

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

Deze functie lijkt op Test-ModuleManifest, maar retourneert een Booleaanse waarde. De functie retourneert $True als het manifest de test heeft doorstaan en anders $False.

De functie gebruikt de Get-ChildItem cmdlet, alias = dir, om het modulemanifest op te halen dat is opgegeven door de $path variabele. De opdracht maakt gebruik van een pijplijnoperator (|) om het bestandsobject door te geven aan Test-ModuleManifest.

Test-ModuleManifest maakt gebruik van de ErrorAction algemene parameter met een waarde van SilentlyContinue om de weergave te onderdrukken van eventuele fouten die de opdracht genereert. Het slaat ook het PSModuleInfo-object op dat Test-ModuleManifest retourneert in de $a variabele. Daarom wordt het object niet weergegeven.

Vervolgens geeft de functie in een afzonderlijke opdracht de waarde van de $? automatische variabele. Als met de vorige opdracht geen fout wordt gegenereerd, wordt $True weergegeven en $False anders.

U kunt deze functie gebruiken in voorwaardelijke instructies, zoals de instructies die voorafgaan aan een opdracht importmodule of een opdracht die gebruikmaakt van de module.

Parameters

-Path

Hiermee geeft u een pad en bestandsnaam voor het manifestbestand. Voer een optioneel pad en de naam in van het manifestbestand van de module met de extensie .psd1. De standaardlocatie is de huidige map. Jokertekens worden ondersteund, maar moeten worden omgezet in één manifestbestand van de module. Deze parameter is vereist. U kunt ook een pad doorsluisen naar Test-ModuleManifest.

Type:String
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:True

Invoerwaarden

String

U kunt het pad naar een modulemanifest doorsluisen naar deze cmdlet.

Uitvoerwaarden

PSModuleInfo

Met deze cmdlet wordt een PSModuleInfo--object geretourneerd dat de module vertegenwoordigt. Het retourneert dit object zelfs als het manifest fouten bevat.