Compartilhar via


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 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 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

String

Você pode canalizar o caminho para um manifesto de módulo para este cmdlet.

Saídas

PSModuleInfo

Esse cmdlet retorna um objeto PSModuleInfo que representa o módulo. Ele retorna esse objeto mesmo se o manifesto tiver erros.