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-ModuleManifestmenggunakan 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.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

Input

String

Anda dapat menyalurkan jalur ke manifes modul ke cmdlet ini.

Output

PSModuleInfo

Cmdlet ini mengembalikan objek PSModuleInfo yang mewakili modul. Ini mengembalikan objek ini meskipun manifes memiliki kesalahan.