Test-ModuleManifest

Sprawdza, czy plik manifestu modułu dokładnie opisuje zawartość modułu.

Składnia

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

Opis

Polecenie Test-ModuleManifest cmdlet sprawdza, czy pliki wymienione w pliku manifestu modułu (.psd1) są rzeczywiście w określonych ścieżkach.

To polecenie cmdlet zostało zaprojektowane w celu ułatwienia autorom modułów testowania plików manifestu. Użytkownicy modułu mogą również używać tego polecenia cmdlet w skryptach i poleceniach do wykrywania błędów przed uruchomieniem skryptów, które zależą od modułu.

Test-ModuleManifest zwraca obiekt reprezentujący moduł. Jest to ten sam typ obiektu, który Get-Module zwraca. Jeśli jakiekolwiek pliki nie znajdują się w lokalizacjach określonych w manifeście, polecenie cmdlet generuje również błąd dla każdego brakującego pliku.

Przykłady

Przykład 1. Testowanie manifestu

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

To polecenie sprawdza manifest modułu TestModule.psd1 .

Przykład 2. Testowanie manifestu przy użyciu potoku

"$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     : {}

To polecenie używa operatora potoku (|), aby wysłać ciąg ścieżki do Test-ModuleManifest.

Dane wyjściowe polecenia pokazują, że test zakończył się niepowodzeniem, ponieważ plik TestTypes.ps1xml, który został wymieniony w manifeście, nie został znaleziony.

Przykład 3. Pisanie funkcji w celu przetestowania manifestu modułu

function Test-ManifestBool ($path)

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

Ta funkcja jest podobna do Test-ModuleManifest, ale zwraca wartość logiczną. Funkcja zwraca wartość $True , jeśli manifest przeszedł test i $False w inny sposób.

Funkcja używa polecenia cmdlet Get-ChildItem alias = dir, aby uzyskać manifest modułu określony przez zmienną $path . Polecenie używa operatora potoku (|), aby przekazać obiekt pliku do Test-ModuleManifest.

Test-ModuleManifest używa wspólnego parametru ErrorAction z wartością SilentlyContinue, aby pominąć wyświetlanie błędów generowanych przez polecenie. Zapisuje również obiekt PSModuleInfo zwracany Test-ModuleManifest w zmiennej $a. W związku z tym obiekt nie jest wyświetlany.

Następnie w osobnym poleceniu funkcja wyświetla wartość zmiennej automatycznej $? . Jeśli poprzednie polecenie nie generuje błędu, polecenie wyświetla $Truepolecenie , a $False w przeciwnym razie.

Możesz użyć tej funkcji w instrukcjach warunkowych, takich jak te, które mogą poprzedzać Import-Module polecenie lub polecenie, które używa modułu.

Parametry

-Path

Określa ścieżkę i nazwę pliku manifestu. Wprowadź opcjonalną ścieżkę i nazwę pliku manifestu modułu z .psd1 rozszerzeniem nazwy pliku. Domyślna lokalizacja to bieżący katalog. Obsługiwane są symbole wieloznaczne, ale muszą zostać rozpoznane w jednym pliku manifestu modułu. Ten parametr jest wymagany. Możesz również przekazać ścieżkę do Test-ModuleManifestelementu .

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

Dane wejściowe

String

Możesz przekazać ścieżkę do manifestu modułu do tego polecenia cmdlet.

Dane wyjściowe

PSModuleInfo

To polecenie cmdlet zwraca obiekt PSModuleInfo reprezentujący moduł. Zwraca ten obiekt, nawet jeśli manifest zawiera błędy.