Test-ModuleManifest

Vérifie qu'un fichier manifeste de module décrit précisément le contenu d'un module.

Syntax

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

Description

L’applet Test-ModuleManifest de commande vérifie que les fichiers répertoriés dans le fichier manifeste du module (.psd1) se trouvent réellement dans les chemins spécifiés.

Cette applet de commande est conçue pour aider les auteurs du module à tester leurs fichiers manifeste. Les utilisateurs de module peuvent également utiliser cette applet de commande dans des scripts et des commandes pour détecter les erreurs avant d’exécuter des scripts qui dépendent du module.

Test-ModuleManifest retourne un objet qui représente le module. Il s’agit du même type d’objet que celui qui Get-Module retourne. Si des fichiers ne figurent pas aux emplacements spécifiés dans le manifeste, l'applet de commande génère également une erreur pour chaque fichier manquant.

Exemples

Exemple 1 : Tester un manifeste

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

Cette commande teste le manifeste du TestModule.psd1 module.

Exemple 2 : Tester un manifeste à l’aide du pipeline

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

Cette commande utilise un opérateur de pipeline (|) pour envoyer une chaîne de chemin d’accès à Test-ModuleManifest.

La sortie de la commande indique que le test a échoué, car le fichier TestTypes.ps1xml, indiqué dans le manifeste, est introuvable.

Exemple 3 : Écrire une fonction pour tester un manifeste de module

function Test-ManifestBool ($path)

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

Cette fonction est semblable Test-ModuleManifest, mais elle retourne une valeur booléenne. La fonction retourne $True si le manifeste a réussi le test et $False sinon.

La fonction utilise l’applet de commande Get-ChildItem, alias = dir, pour obtenir le manifeste du module spécifié par la $path variable. La commande utilise un opérateur de pipeline (|) pour passer l’objet de fichier à Test-ModuleManifest.

Test-ModuleManifest utilise le paramètre commun ErrorAction avec la valeur SilentlyContinue pour supprimer l’affichage des erreurs générées par la commande. Il enregistre également l’objet PSModuleInfo qui Test-ModuleManifest retourne dans la variable $a. Par conséquent, l’objet n’est pas affiché.

Ensuite, dans une commande distincte, la fonction affiche la valeur de la $? variable automatique. Si la commande précédente ne génère aucune erreur, la commande s’affiche $Trueet $False sinon.

Vous pouvez utiliser cette fonction dans des instructions conditionnelles, telles que celles qui peuvent précéder une Import-Module commande ou une commande qui utilise le module.

Paramètres

-Path

Spécifie un chemin d’accès et un nom de fichier pour le fichier manifeste. Entrez un chemin d’accès facultatif et le nom du fichier manifeste du module qui a l’extension .psd1 de nom de fichier. L'emplacement par défaut est le répertoire actif. Les caractères génériques carte sont pris en charge, mais doivent être résolus en un seul fichier manifeste de module. Ce paramètre est obligatoire. Vous pouvez également diriger un chemin vers Test-ModuleManifest.

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

Entrées

String

Vous pouvez diriger le chemin vers un manifeste de module vers cette applet de commande.

Sorties

PSModuleInfo

Cette applet de commande retourne un objet PSModuleInfo qui représente le module. Il retourne cet objet même si le manifeste comporte des erreurs.