Condividi tramite


Test-ModuleManifest

Verifica che un file manifesto del modulo descriva accuratamente il contenuto di un modulo.

Sintassi

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

Descrizione

Il Test-ModuleManifest cmdlet verifica che i file elencati nel file manifesto del modulo (.psd1) siano effettivamente presenti nei percorsi specificati.

Questo cmdlet ha lo scopo di aiutare gli autori di moduli a testare i file manifesto. Gli utenti del modulo possono anche usare questo cmdlet negli script e nei comandi per rilevare gli errori prima di eseguire script che dipendono dal modulo.

Test-ModuleManifest restituisce un oggetto che rappresenta il modulo. Si tratta dello stesso tipo di oggetto restituito Get-Module . Se uno o più file non sono presenti nei percorsi specificati nel manifesto, il cmdlet genera inoltre un errore per ogni file mancante.

Esempio

Esempio 1: Testare un manifesto

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

Questo comando testa il manifesto del TestModule.psd1 modulo.

Esempio 2: Testare un manifesto usando la 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     : {}

Questo comando usa un operatore pipeline (|) per inviare una stringa di percorso a Test-ModuleManifest.

L'output del comando mostra che il test non è riuscito, perché il file TestTypes.ps1xml indicato nel manifesto non è stato trovato.

Esempio 3: Scrivere una funzione per testare un manifesto del modulo

function Test-ManifestBool ($path)

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

Questa funzione è simile Test-ModuleManifesta , ma restituisce un valore booleano. La funzione restituisce $True se il manifesto ha superato il test e $False in caso contrario.

La funzione usa il cmdlet Get-ChildItem, alias = dir, per ottenere il manifesto del modulo specificato dalla $path variabile. Il comando usa un operatore pipeline (|) per passare l'oggetto file a Test-ModuleManifest.

Test-ModuleManifest usa il parametro comune ErrorAction con un valore SilentlyContinue per eliminare la visualizzazione di eventuali errori generati dal comando. Salva anche l'oggetto PSModuleInfo che Test-ModuleManifest restituisce nella variabile $a. Pertanto, l'oggetto non viene visualizzato.

Quindi, in un comando separato, la funzione visualizza il valore della $? variabile automatica. Se il comando precedente non genera alcun errore, il comando visualizza $Truee $False in caso contrario.

È possibile usare questa funzione nelle istruzioni condizionali, ad esempio quelle che potrebbero precedere un Import-Module comando o un comando che usa il modulo.

Parametri

-Path

Specifica un percorso e un nome di file per il file manifesto. Immettere un percorso facoltativo e il nome del file manifesto del modulo con l'estensione .psd1 del nome file. Il percorso predefinito è la directory corrente. I caratteri jolly sono supportati, ma devono essere risolti in un singolo file manifesto del modulo. Questo parametro è obbligatorio. È anche possibile inviare tramite pipe un percorso a Test-ModuleManifest.

Tipo:String
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:True

Input

String

È possibile inviare tramite pipe il percorso a un manifesto del modulo a questo cmdlet.

Output

PSModuleInfo

Questo cmdlet restituisce un oggetto PSModuleInfo che rappresenta il modulo. Lo restituisce anche se il manifesto contiene errori.