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 $True
polecenie , 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-ModuleManifest
elementu .
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.