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 tak, aby ułatwić autorom modułów testowanie 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 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 (|), 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 $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 wszelkich 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 przeciwnym razie.

Tej funkcji można używać w instrukcjach warunkowych, takich jak te, które mogą poprzedzać Import-Module polecenie lub polecenie korzystające z modułu.

Parametry

-Path

Określa ścieżkę i nazwę pliku manifestu. Wprowadź opcjonalną ścieżkę i nazwę pliku manifestu modułu, który ma .psd1 rozszerzenie 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.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych: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.