Test-ModuleManifest

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

Syntax

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

Description

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

Este cmdlet está pensado para ayudar a los autores del módulo 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 los archivos no están en las ubicaciones especificadas en el manifiesto, el cmdlet también generará un error por cada archivo que falte.

Ejemplos

Ejemplo 1: Probar un manifiesto

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

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

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.

El resultado del comando refleja que la prueba dio error, ya que no se encontró el archivo TestTypes.ps1xml, que aparecía 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 $path variable . El comando usa un operador de canalización (|) para pasar el objeto de archivo a Test-ModuleManifest.

Test-ModuleManifest usa el parámetro común ErrorAction con un valor de SilentlyContinue para suprimir la presentació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 la $? variable automática. Si el comando anterior no genera ningún error, el comando muestra $Truey $False , de lo contrario, .

Puede usar esta función en instrucciones condicionales, como las que podrían preceder a un Import-Module comando 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 .psd1 nombre de archivo. 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.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.