Compartir a través de


Test-ModuleManifest

Comprueba que un archivo de manifiesto de módulo describe con precisión el contenido de un módulo.

Sintaxis

Test-ModuleManifest
    [-Path] <String>
    [<CommonParameters>]

Description

El cmdlet Test-ModuleManifest comprueba que los archivos que aparecen en el archivo de manifiesto del módulo (.psd1) se encuentran realmente en las rutas de acceso especificadas.

Este cmdlet está diseñado para ayudar a los autores de módulos a probar sus archivos de manifiesto. Los usuarios del módulo también pueden usar este cmdlet en scripts y comandos para detectar errores antes de ejecutar scripts que dependen del módulo.

Test-ModuleManifest devuelve un objeto que representa el módulo. Este es el mismo tipo de objeto que Get-Module devuelve. Si algún archivo no está en las ubicaciones especificadas en el manifiesto, el cmdlet también genera un error para cada archivo que falta.

Ejemplos

Ejemplo 1: Probar un manifiesto

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

Este comando prueba el manifiesto del módulo TestModule.psd1.

Ejemplo 2: Probar un manifiesto mediante la canalización

"$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 un operador de canalización (|) para enviar una cadena de ruta de acceso a Test-ModuleManifest.

La salida del comando muestra que se produjo un error en la prueba porque no se encontró el archivo TestTypes.ps1xml, que aparece en el manifiesto.

Ejemplo 3: Escribir una función para probar un manifiesto de módulo

function Test-ManifestBool ($path)

{$a = dir $path | Test-ModuleManifest -ErrorAction SilentlyContinue; $?}

Esta función es como Test-ModuleManifest, pero devuelve un valor booleano. La función devuelve $True si el manifiesto pasó la prueba y $False de lo contrario.

La función usa el cmdlet Get-ChildItem, alias = dir, para obtener el manifiesto del módulo especificado por la variable $path. El comando usa un operador de canalización (|) para pasar el objeto de archivo a Test-ModuleManifest.

Test-ModuleManifest usa el ErrorAction parámetro común con un valor de SilentlyContinue para suprimir la visualización de los errores que genera el comando. También guarda el objeto PSModuleInfo que Test-ModuleManifest devuelve en la variable $a. Por lo tanto, el objeto no se muestra.

A continuación, en un comando independiente, la función muestra el valor de $? variable automática. Si el comando anterior no genera ningún error, el comando muestra $True y $False de lo contrario.

Puede usar esta función en instrucciones condicionales, como las que podrían preceder a un comando Import-Module o un comando que use el módulo.

Parámetros

-Path

Especifica una ruta de acceso y un nombre de archivo para el archivo de manifiesto. Escriba una ruta de acceso opcional y el nombre del archivo de manifiesto del módulo que tenga la extensión de nombre de archivo .psd1. La ubicación predeterminada es el directorio actual. Se admiten caracteres comodín, pero debe resolverse en un único archivo de manifiesto de módulo. Este parámetro es obligatorio. También puede canalizar una ruta de acceso a Test-ModuleManifest.

Tipo:String
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:True

Entradas

String

Puede canalizar la ruta de acceso a un manifiesto de módulo a este cmdlet.

Salidas

PSModuleInfo

Este cmdlet devuelve un objeto PSModuleInfo que representa el módulo. Devuelve este objeto incluso si el manifiesto tiene errores.