Test-ModuleManifest
Ellenőrzi, hogy egy modul jegyzékfájlja pontosan leírja-e egy modul tartalmát.
Syntax
Test-ModuleManifest
[-Path] <String>
[<CommonParameters>]
Description
A Test-ModuleManifest
parancsmag ellenőrzi, hogy a moduljegyzékfájlban (.psd1
) felsorolt fájlok ténylegesen a megadott elérési utakon találhatók-e.
Ez a parancsmag segít a modulkészítőknek a jegyzékfájljaik tesztelésében. A modulfelhasználók ezt a parancsmagot szkriptekben és parancsokban is használhatják a hibák észlelésére, mielőtt a modultól függő szkripteket futtatnának.
Test-ModuleManifest
A modult jelképező objektumot ad vissza. Ez ugyanaz az objektumtípus, amelyet Get-Module
visszaad. Ha bármely fájl nincs a jegyzékben megadott helyeken, a parancsmag hibát is generál az egyes hiányzó fájlok esetében.
Példák
1. példa: Jegyzék tesztelése
Test-ModuleManifest -Path "$pshome\Modules\TestModule.psd1"
Ez a parancs teszteli a moduljegyzéket TestModule.psd1
.
2. példa: Jegyzékfájl tesztelése a folyamat használatával
"$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 : {}
Ez a parancs egy folyamatkezelőt (|
) használ egy elérésiút-sztring elküldéséhez Test-ModuleManifest
.
A parancs kimenete azt mutatja, hogy a teszt sikertelen volt, mert a jegyzékben szereplő TestTypes.ps1xml fájl nem található.
3. példa: Függvény írása moduljegyzék teszteléséhez
function Test-ManifestBool ($path)
{$a = dir $path | Test-ModuleManifest -ErrorAction SilentlyContinue; $?}
Ez a függvény hasonló Test-ModuleManifest
, de logikai értéket ad vissza. A függvény akkor ad $True
vissza, ha a jegyzékfájl megfelelt a tesztnek, és $False
ellenkező esetben.
A függvény az alias = dir Get-ChildItem parancsmagot használja a változó által megadott moduljegyzék lekéréséhez $path
. A parancs egy folyamatkezelővel (|
) továbbítja a fájlobjektumot a következőnek Test-ModuleManifest
:
Test-ModuleManifest
Az ErrorAction common paraméter és a SilentlyContinue érték használatával letiltja a parancs által generált hibák megjelenítését. A $a változóban visszaadott Test-ModuleManifest
PSModuleInfo objektumot is menti. Ezért az objektum nem jelenik meg.
Ezután egy külön parancsban a függvény megjeleníti az $?
automatikus változó értékét. Ha az előző parancs nem okoz hibát, a parancs megjelenik $True
, és $False
egyéb esetben.
Ezt a függvényt feltételes utasításokban is használhatja, például a modult Import-Module
használó parancsok vagy parancsok elé.
Paraméterek
-Path
Megadja a jegyzékfájl elérési útját és fájlnevét. Adja meg annak a moduljegyzékfájlnak a választható elérési útját és nevét, amely rendelkezik a .psd1
fájlnévkiterjesztéssel. Az alapértelmezett hely az aktuális könyvtár. A helyettesítő karakterek támogatottak, de egyetlen moduljegyzékfájlra kell feloldani.
Ez a paraméter kötelező. Az elérési utat Test-ModuleManifest
is beszűkítheti.
Típus: | String |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | True |
Bevitelek
Ehhez a parancsmaghoz a moduljegyzék elérési útját is beszűkítheti.
Kimenetek
Ez a parancsmag a modult jelképező PSModuleInfo objektumot adja vissza. Akkor is visszaadja ezt az objektumot, ha a jegyzékben hibák vannak.