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