Test-ModuleManifest
Sprawdza, czy plik manifestu modułu dokładnie opisuje zawartość modułu.
Składnia
Test-ModuleManifest
[-Path] <String>
[<CommonParameters>]
Opis
Polecenie cmdlet Test-ModuleManifest 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 (|) do wysyłania ciągu ś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 przeciwnym razie.
Funkcja używa polecenia cmdlet Get-ChildItem alias = dir, aby uzyskać manifest modułu określony przez zmienną $path. Polecenie używa operatora potoku (|) do przekazania obiektu pliku do pliku 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 przez plik Test-ModuleManifest w zmiennej $a. W związku z tym obiekt nie jest wyświetlany.
Następnie w osobnym poleceniu funkcja wyświetla wartość $? zmienna automatyczna. Jeśli poprzednie polecenie nie generuje błędu, polecenie wyświetla $True i $False w przeciwnym razie.
Tej funkcji można użyć w instrukcjach warunkowych, takich jak te, które mogą poprzedzać polecenie Import-Module 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 rozszerzeniem nazwy pliku psd1. 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 pliku Test-ModuleManifest.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Dane wejściowe
Możesz przekazać ścieżkę do manifestu modułu do tego polecenia cmdlet.
Dane wyjściowe
To polecenie cmdlet zwraca obiekt PSModuleInfo reprezentujący moduł. Zwraca ten obiekt, nawet jeśli manifest zawiera błędy.