다음을 통해 공유


Test-ModuleManifest

모듈 매니페스트 파일이 모듈의 내용을 정확하게 설명하는지 확인합니다.

구문

Test-ModuleManifest [-Path] <string> [<CommonParameters>]

설명

Test-ModuleManifest cmdlet은 모듈 매니페스트(.psd1) 파일에 나열된 파일이 지정된 경로에 실제로 있는지 확인합니다.

이 cmdlet은 모듈 작성자가 매니페스트 파일을 테스트하는 데 도움을 주기 위해 설계되었습니다. 모듈 사용자도 스크립트와 명령에서 이 cmdlet을 사용하여 모듈을 사용하는 스크립트를 실행하기 전에 오류를 검색할 수 있습니다.

Test-ModuleManifest cmdlet은 모듈을 나타내는 개체(Get-Module이 반환하는 동일한 유형의 개체)를 반환합니다. 매니페스트에 지정된 위치에 파일이 없는 경우 이 cmdlet은 없는 각 파일에 대한 오류도 생성합니다.

매개 변수

-Path <string>

모듈 매니페스트 파일의 경로를 지정합니다. 파일 이름 확장명이 .psd1인 모듈 매니페스트 파일의 이름과 경로(선택 사항)를 입력하십시오. 기본 위치는 현재 디렉터리입니다. 이 매개 변수는 필수 사항입니다. 매개 변수 이름("Path")은 선택 사항입니다. 경로를 Test-ModuleManifest로 파이프할 수도 있습니다.

필수 여부

true

위치

1

기본값

없음

파이프라인 입력 적용 여부

true (ByValue, ByPropertyName)

와일드카드 문자 적용 여부

false

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

System.String

모듈 매니페스트의 경로를 Test-ModuleManifest로 파이프할 수 있습니다.

출력

System.Management.Automation.PSModuleInfo

Test-ModuleManifest는 모듈을 나타내는 PSModuleInfo 개체를 반환하며, 매니페스트에 오류가 있는 경우에도 이 개체를 반환합니다.

예 1

C:\PS>test-ModuleManifest -path $pshome\Modules\TestModule.psd1

설명
-----------
이 명령은 TestModule.psd1 모듈 매니페스트를 테스트합니다.





예 2

C:\PS>"$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 pro
cessed because the file was not found. Please correct the path and try aga
in.
At line:1 char:34
+ "$pshome\Modules\TestModule.psd1" | test-modulemanifest <<<<
    + CategoryInfo          : ResourceUnavailable: (C:\Windows\System32\Win
dowsPowerShell\v1.0\Modules\TestModule\TestTypes.ps1xml:String) [Test-Modul
eManifest], FileNotFoundException
    + FullyQualifiedErrorId : Modules_TypeDataFileNotFound,Microsoft.
PowerShell.Commands.TestModuleManifestCommandName


Name              : TestModule
Path              : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Test
Module\TestModule.psd1
Description       :
Guid              : 6f0f1387-cd25-4902-b7b4-22cff6aefa7b
Version           : 1.0
ModuleBase        : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Test
Module
ModuleType        : Manifest
PrivateData       :
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {}
ExportedVariables : {}
NestedModules     : {}

설명
-----------
이 명령은 파이프라인 연산자(|)를 사용하여 경로 문자열을 Test-ModuleManifest로 보냅니다. 

명령 출력에서는 매니페스트에 나열된 TestTypes.ps1xml 파일을 찾을 수 없기 때문에 테스트가 실패했음을 보여 줍니다.





예 3

C:\PS>function Bool-ModuleManifest ($path)
    {$a = dir $path | test-modulemanifest -erroraction SilentlyContinue; $?}

설명
-----------
이 함수는 Test-ModuleManifest와 같지만 부울 값을 반환합니다. 매니페스트가 테스트를 통과했으면 "True"를 반환하고, 그렇지 않으면 "False"를 반환합니다.

이 함수는 Get-ChildItem cmdlet(별칭 = dir)을 사용하여 $path 변수로 지정된 모듈 매니페스트를 가져옵니다. 또한 파이프라인 연산자(|)를 사용하여 파일 개체를 Test-ModuleManifest cmdlet으로 전달합니다.

Test-ModuleManifest 명령은 값이 SilentlyContinue인 ErrorAction 일반 매개 변수를 사용하여 명령이 생성하는 모든 오류를 표시하지 않습니다. 또한 Test-ModuleManifest가 반환하는 PSModuleInfo 개체를 $a 변수에 저장하므로 해당 개체가 표시되지 않습니다. 

그런 다음 별도 명령(세미콜론[;]이 명령 구분 기호임)에서 $? 자동 변수의 값을 표시합니다. 이 변수는 이전 명령에서 오류가 생성되지 않은 경우 "True"를 반환하고, 그렇지 않은 경우에는 "False"를 반환합니다.

Import-Module 명령이나 모듈을 사용하는 명령 앞에 있을 수 있는 조건문에서 이 함수를 사용할 수 있습니다.





참고 항목

개념

Import-Module
Get-Module
New-Module
Remove-Module
Export-ModuleMember
New-ModuleManifest
about_Modules