Test-ModuleManifest
Memverifikasi bahwa file manifes modul secara akurat menjelaskan konten modul.
Sintaks
Test-ModuleManifest
[-Path] <String>
[<CommonParameters>]
Deskripsi
Test-ModuleManifest
Cmdlet memverifikasi bahwa file yang tercantum dalam file manifes modul (.psd1
) sebenarnya berada di jalur yang ditentukan.
Cmdlet ini dirancang untuk membantu penulis modul menguji file manifes mereka. Pengguna modul juga dapat menggunakan cmdlet ini dalam skrip dan perintah untuk mendeteksi kesalahan sebelum mereka menjalankan skrip yang bergantung pada modul.
Test-ModuleManifest
mengembalikan objek yang mewakili modul. Ini adalah jenis objek yang sama yang Get-Module
mengembalikan. Jika ada file yang tidak berada di lokasi yang ditentukan dalam manifes, cmdlet juga menghasilkan kesalahan untuk setiap file yang hilang.
Contoh
Contoh 1: Menguji manifes
Test-ModuleManifest -Path "$pshome\Modules\TestModule.psd1"
Perintah ini menguji TestModule.psd1
manifes modul.
Contoh 2: Menguji manifes dengan menggunakan alur
"$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 : {}
Perintah ini menggunakan operator alur (|
) untuk mengirim string jalur ke Test-ModuleManifest
.
Output perintah menunjukkan bahwa pengujian gagal, karena file TestTypes.ps1xml, yang tercantum dalam manifes, tidak ditemukan.
Contoh 3: Menulis fungsi untuk menguji manifes modul
function Test-ManifestBool ($path)
{$a = dir $path | Test-ModuleManifest -ErrorAction SilentlyContinue; $?}
Fungsi ini seperti Test-ModuleManifest
, tetapi mengembalikan nilai Boolean. Fungsi mengembalikan $True
jika manifes lulus pengujian dan $False
sebaliknya.
Fungsi ini menggunakan cmdlet Get-ChildItem, alias = dir, untuk mendapatkan manifes modul yang ditentukan oleh $path
variabel. Perintah menggunakan operator alur (|
) untuk meneruskan objek file ke Test-ModuleManifest
.
Test-ModuleManifest
menggunakan parameter umum ErrorAction dengan nilai SilentlyContinue untuk menekan tampilan kesalahan apa pun yang dihasilkan perintah. Ini juga menyimpan objek PSModuleInfo yang Test-ModuleManifest
kembali dalam variabel $a. Oleh karena itu, objek tidak ditampilkan.
Kemudian, dalam perintah terpisah, fungsi menampilkan nilai $?
variabel otomatis. Jika perintah sebelumnya tidak menghasilkan kesalahan, perintah akan menampilkan $True
, dan $False
sebaliknya.
Anda dapat menggunakan fungsi ini dalam pernyataan kondisi, seperti yang mungkin mendahului Import-Module
perintah atau perintah yang menggunakan modul.
Parameter
-Path
Menentukan jalur dan nama file untuk file manifes. Masukkan jalur opsional dan nama file manifes modul yang memiliki .psd1
ekstensi nama file. Lokasi default adalah direktori saat ini. Karakter kartubebas didukung, tetapi harus diselesaikan ke satu file manifes modul.
Parameter ini diperlukan. Anda juga dapat menyalurkan jalur ke Test-ModuleManifest
.
Jenis: | String |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | True |
Input
Anda dapat menyalurkan jalur ke manifes modul ke cmdlet ini.
Output
Cmdlet ini mengembalikan objek PSModuleInfo yang mewakili modul. Ini mengembalikan objek ini meskipun manifes memiliki kesalahan.