Test-ModuleManifest
Verifica se um arquivo de manifesto de módulo descreve com precisão o conteúdo de um módulo.
Sintaxe
Test-ModuleManifest
[-Path] <String>
[<CommonParameters>]
Description
O Test-ModuleManifest
cmdlet verifica se os arquivos listados no arquivo de manifesto do módulo (.psd1
) estão realmente nos caminhos especificados.
Este cmdlet foi projetado para ajudar os autores do módulo a testar seus arquivos de manifesto. Os usuários do módulo também podem usar esse cmdlet em scripts e comandos para detetar erros antes de executar scripts que dependem do módulo.
Test-ModuleManifest
Retorna um objeto que representa o módulo. Este é o mesmo tipo de objeto que Get-Module
retorna. Se algum arquivo não estiver nos locais especificados no manifesto, o cmdlet também gerará um erro para cada arquivo ausente.
Exemplos
Exemplo 1: Testar um manifesto
Test-ModuleManifest -Path "$pshome\Modules\TestModule.psd1"
Este comando testa o manifesto do TestModule.psd1
módulo.
Exemplo 2: Testar um manifesto usando o 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 : {}
Este comando usa um operador de pipeline (|
) para enviar uma cadeia de caracteres de caminho para Test-ModuleManifest
.
A saída do comando mostra que o teste falhou, porque o arquivo TestTypes.ps1xml, que foi listado no manifesto, não foi encontrado.
Exemplo 3: Escrever uma função para testar um manifesto de módulo
function Test-ManifestBool ($path)
{$a = dir $path | Test-ModuleManifest -ErrorAction SilentlyContinue; $?}
Esta função é como Test-ModuleManifest
, mas retorna um valor booleano. A função retorna $True
se o manifesto passou no teste e $False
de outra forma.
A função usa o cmdlet Get-ChildItem, alias = dir, para obter o manifesto do módulo especificado pela $path
variável. O comando usa um operador de pipeline (|
) para passar o objeto de arquivo para Test-ModuleManifest
.
Test-ModuleManifest
usa o parâmetro comum ErrorAction com um valor de SilentlyContinue para suprimir a exibição de quaisquer erros gerados pelo comando. Ele também salva o objeto PSModuleInfo que Test-ModuleManifest
retorna na variável $a. Portanto, o objeto não é exibido.
Em seguida, em um comando separado, a função exibe o valor da $?
variável automática. Se o comando anterior não gerar nenhum erro, o comando exibirá $True
e $False
caso contrário.
Você pode usar essa função em instruções condicionais, como aquelas que podem preceder um Import-Module
comando ou um comando que usa o módulo.
Parâmetros
-Path
Especifica um caminho e um nome de arquivo para o arquivo de manifesto. Insira um caminho opcional e um nome do arquivo de manifesto do módulo que tem a extensão de nome de .psd1
arquivo. O local padrão é o diretório atual. Caracteres curinga são suportados, mas devem ser resolvidos para um único arquivo de manifesto de módulo.
Este parâmetro é obrigatório. Você também pode canalizar um caminho para o Test-ModuleManifest
.
Tipo: | String |
Position: | 0 |
Default value: | None |
Necessário: | True |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | True |
Entradas
Você pode canalizar o caminho para um manifesto de módulo para este cmdlet.
Saídas
Este cmdlet retorna um objeto PSModuleInfo que representa o módulo. Ele retorna esse objeto mesmo se o manifesto tiver erros.