Compartilhar via


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 (.psd1) do módulo estão realmente nos caminhos especificados.

Este cmdlet é projetado para ajudar os autores de 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 algum arquivo não estiver nos locais especificados no manifesto, o cmdlet também gera um erro para cada arquivo faltante.

Exemplos

Exemplo 1: Testar um manifesto

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

Esse 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     : {}

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, que estava 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 booleano. A função retorna $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 $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. Há suporte para caracteres curinga, 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 .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 esse cmdlet.

Saídas

PSModuleInfo

Esse cmdlet retorna um objeto PSModuleInfo que representa o módulo. Ele retornará este objeto mesmo se o manifesto apresentar erros.