Поделиться через


Test-ModuleManifest

Проверяет, точно ли описывает файл манифеста модуля его содержимое.

Синтаксис

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

Описание

Командлет Test-ModuleManifest проверяет, находятся ли файлы, перечисленные в файле манифеста модуля (.psd1) фактически в указанных путях.

Этот командлет помогает разработчикам модулей тестировать файлы манифестов. Пользователи модулей также могут использовать этот командлет в скриптах и командах для обнаружения ошибок перед выполнением скриптов, зависящих от модуля.

Test-ModuleManifest возвращает объект, представляющий модуль. Это тот же тип объекта, который Get-Module возвращается. Если какой-либо файл отсутствует в местоположении, указанном в манифесте, выдается ошибка для каждого отсутствующего файла.

Примеры

Пример 1. Тестирование манифеста

Test-ModuleManifest -Path "$pshome\Modules\TestModule.psd1"

Эта команда проверяет TestModule.psd1 манифест модуля.

Пример 2. Тестирование манифеста с помощью конвейера

"$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     : {}

Эта команда использует оператор конвейера (|) для отправки строки Test-ModuleManifestпути в .

В выходных данных команды видно, что тест закончился ошибкой, так как не найден файл TestTypes.ps1xml, указанный в манифесте.

Пример 3. Запись функции для тестирования манифеста модуля

function Test-ManifestBool ($path)

{$a = dir $path | Test-ModuleManifest -ErrorAction SilentlyContinue; $?}

Эта функция похожа Test-ModuleManifest, но возвращает логическое значение. Функция возвращается $True , если манифест прошел тест и $False в противном случае.

Функция использует командлет Get-ChildItem, псевдоним = dir, чтобы получить манифест модуля, указанный переменной $path . Команда использует оператор конвейера (|) для передачи объекта Test-ModuleManifestфайла в .

Test-ModuleManifestиспользует общий параметр ErrorAction со значением SilentlyContinue для подавления отображения любых ошибок, создаваемых командой. Он также сохраняет объект PSModuleInfo , Test-ModuleManifest который возвращается в переменной $a. Поэтому объект не отображается.

Затем в отдельной команде функция отображает значение автоматической переменной $? . Если предыдущая команда не создает ошибки, отображается $Trueкоманда и $False в противном случае.

Эту функцию можно использовать в условных инструкциях, таких как те, которые могут предшествовать Import-Module команде или команде, которая использует модуль.

Параметры

-Path

Задает путь и имя файла манифеста. Введите необязательный путь и имя файла манифеста модуля с расширением .psd1 имени файла. Местоположением по умолчанию является текущий каталог. Поддерживаются подстановочные знаки, но должны разрешаться в один файл манифеста модуля. Этот параметр является обязательным. Вы также можете передать путь к Test-ModuleManifest.

Тип:String
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:True

Входные данные

String

Путь к манифесту модуля можно передать этому командлету.

Выходные данные

PSModuleInfo

Этот командлет возвращает объект PSModuleInfo , представляющий модуль. Объект возвращается даже при наличии ошибок в манифесте.