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-ModuleManifest
a , 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 $True
e $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
È possibile inviare tramite pipe il percorso a un manifesto del modulo a questo cmdlet.
Output
Questo cmdlet restituisce un oggetto PSModuleInfo che rappresenta il modulo. Lo restituisce anche se il manifesto contiene errori.