Udostępnij za pośrednictwem


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) znajdują się 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 zależnych 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 testuje 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 (|) do wysłania ciągu ścieżki do Test-ModuleManifest.

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

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 $True wartość , 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 i $False w inny sposób.

Tej funkcji można używać w instrukcjach warunkowych, takich jak te, które mogą poprzedzać Import-Module polecenie lub polecenie używające 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ślną lokalizacją jest bieżący katalog. Obsługiwane są symbole wieloznaczne, ale muszą być rozpoznawane jako pojedynczy plik manifestu modułu. Ten parametr jest wymagany. Możesz również przekazać ścieżkę do Test-ModuleManifest.

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 wtedy, gdy manifest zawiera błędy.