Test-ModuleManifest
Controleert of een modulemanifestbestand de inhoud van een module nauwkeurig beschrijft.
Syntax
Test-ModuleManifest
[-Path] <String>
[<CommonParameters>]
Description
De Test-ModuleManifest
cmdlet controleert of de bestanden die worden vermeld in het modulemanifestbestand (.psd1
) zich daadwerkelijk in de opgegeven paden bevinden.
Deze cmdlet is ontworpen om auteurs van modules te helpen bij het testen van hun manifestbestanden. 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
wordt geretourneerd. Als bestanden zich niet op de locaties bevinden die in het manifest zijn opgegeven, 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 TestModule.psd1
modulemanifest 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 : {}
Deze opdracht maakt gebruik van een pijplijnoperator (|
) om een padtekenreeks te verzenden naar Test-ModuleManifest
.
De uitvoer van de opdracht laat zien dat de test is mislukt, omdat het bestand TestTypes.ps1xml, dat werd vermeld in het manifest, 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 $False
anders.
De functie gebruikt de cmdlet Get-ChildItem 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
gebruikt de algemene parameter ErrorAction met de waarde SilentlyContinue om de weergave van eventuele fouten die de opdracht genereert, te onderdrukken. Ook wordt het PSModuleInfo-object opgeslagen dat Test-ModuleManifest
wordt geretourneerd in de variabele $a. Daarom wordt het object niet weergegeven.
Vervolgens geeft de functie in een afzonderlijke opdracht de waarde van de $?
automatische variabele weer. Als de vorige opdracht geen fout genereert, wordt met de opdracht weergegeven $True
en $False
anders.
U kunt deze functie gebruiken in voorwaardelijke instructies, zoals de instructies die voorafgaan aan een Import-Module
opdracht 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 een naam in van het modulemanifestbestand met de .psd1
bestandsnaamextensie. De standaardlocatie is de huidige map. Jokertekens worden ondersteund, maar moeten worden omgezet in één modulemanifestbestand.
Deze parameter is vereist. U kunt ook een pad doorspezen naar Test-ModuleManifest
.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Invoerwaarden
U kunt het pad naar een modulemanifest doorspezen naar deze cmdlet.
Uitvoerwaarden
Deze cmdlet retourneert een PSModuleInfo-object dat de module vertegenwoordigt. Dit object wordt geretourneerd, zelfs als het manifest fouten bevat.