Проверяет, что файл манифеста модуля точно описывает содержимое модуля.
Синтаксис
Test-ModuleManifest [-Path] <string> [<CommonParameters>]
Описание
Командлет Test-ModuleManifest проверяет, что файлы, указанные в файле манифеста модуля (PSD1), действительно существуют по указанным путям.
Этот командлет помогает разработчикам модулей тестировать файлы манифестов. Пользователи модуля также могут использовать этот командлет в скриптах и командах для выявления ошибок до выполнения скриптов, зависящих от модуля.
Командлет Test-ModuleManifest возвращает объект, представляющий модуль (такого же типа, что и объект, возвращаемый командлетом Get-Module). Если какой-либо файл отсутствует в местоположении, указанном в манифесте, выдается ошибка для каждого отсутствующего файла.
Параметры
-Path <string>
Задает путь к файлу манифеста модуля. Укажите путь (необязательно) и имя файла манифеста модуля с расширением PSM1. Местоположением по умолчанию является текущий каталог. Это обязательный параметр. Имя параметра ("Path") указывать необязательно. Кроме того, путь можно передать командлету Test-ModuleManifest по конвейеру.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
нет |
Принимать входные данные из конвейера? |
true (ByValue, ByPropertyName) |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
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 (псевдоним "dir") для получения манифеста модуля, указанного в переменной $path. Объект файла передается командлету Test-ModuleManifest с помощью оператора конвейера (|). Команда Test-ModuleManifest использует общий параметр ErrorAction со значением SilentlyContinue для отключения вывода сообщений об ошибках, создаваемых командой. Кроме того, команда сохраняет в переменной $a объект PSModuleInfo, возвращенный командлетом Test-ModuleManifest, поэтому этот объект не отображается. Затем другая команда (разделителем команд служит точка с запятой [;]) отображает значение автоматической переменной $?, которая возвращает значение "True", если предыдущая команда не создала ошибок, либо значение "False" в противном случае. Эту функцию можно использовать в условных операторах, например операторах перед командой Import-Module или командой, использующей модуль.