Test-ModuleManifest
Verifica se um arquivo de manifesto do módulo descreve com precisão o conteúdo de um módulo.
Sintaxe
Test-ModuleManifest
[-Path] <String>
[<CommonParameters>]
Description
O cmdlet Test-ModuleManifest verifica se os arquivos listados no arquivo de manifesto do módulo (.psd1) estão realmente nos caminhos especificados.
Esse 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 detectar erros antes de executar scripts que dependem do módulo.
Test-ModuleManifest retorna um objeto que representa o módulo. Esse é o mesmo tipo de objeto que Get-Module retorna. Se os arquivos não estiverem 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"
Esse comando testa o manifesto do módulo TestModule.psd1.
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 : {}
Esse 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, 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; $?}
Essa função é como Test-ModuleManifest, mas retorna um valor booliano. A função retornará $True se o manifesto passou no teste e $False caso contrário.
A função usa o cmdlet Get-ChildItem, alias = dir, para obter o manifesto do módulo especificado pela variável $path. O comando usa um operador de pipeline (|) para passar o objeto de arquivo para Test-ModuleManifest.
Test-ModuleManifest usa o parâmetro ErrorAction comum com um valor de SilentlyContinue para suprimir a exibição de quaisquer erros gerados pelo comando.
Ele também salva o objeto PSModuleInfo
Em seguida, em um comando separado, a função exibe o valor do $? 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 comando Import-Module 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 o nome do arquivo de manifesto do módulo que tem a extensão de nome de arquivo .psd1. O local padrão é o diretório atual. Há suporte para caracteres curinga, mas devem ser resolvidos para um único arquivo de manifesto do módulo. Esse parâmetro é necessário. Você também pode canalizar um caminho para Test-ModuleManifest.
Tipo: | String |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | True |
Entradas
Você pode canalizar o caminho para um manifesto de módulo para este cmdlet.
Saídas
Esse cmdlet retorna um objeto PSModuleInfo que representa o módulo. Ele retorna esse objeto mesmo se o manifesto tiver erros.