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 |
Входные данные
Путь к манифесту модуля можно передать этому командлету.
Выходные данные
Этот командлет возвращает объект PSModuleInfo , представляющий модуль. Объект возвращается даже при наличии ошибок в манифесте.
Связанные ссылки
PowerShell