Рубрики
Uncategorized

Тестирование Код PowerShell с Pester

Узнайте, как протестировать код PowerShell для любого сценария с PowerShell Pretty Framework Prace. Помечено DevOps, PowerShell, Octopus, развертывание.

Когда вы работаете с любым кодом, будь то автоматизация или программный код, его следует обрабатывать так же. В конце концов, функции все еще функции, а переменные все еще являются переменными. Одна из многих вещей, которые не придумывают так часто, когда вы автоматизируете VS, когда вы создаете тестирование приложений.

Устройство тестирования и тестирование издевательства чрезвычайно важны в скриптах и автоматизации.

Подумайте об этом сценарии: Я проверил функцию PowerShell локально, и это работает! Это сделало точное, что мне нужно, и теперь я собираюсь хранить его в Github, поэтому его можно использовать позже.

Хорошо, что это было проверено локально, но тест, который вы побежали, теперь в прошлом, и несколько вещей могут случиться:

  • Новые версии кода могут быть созданы.
  • Ошибки могут быть введены путем изменения кода.
  • Новые функции могут быть добавлены.
  • Код используется в другой системе или операционной системе.
  • Модуль PowerShell, который вы используете, получает обновление или изменено.
  • API позвонит модуль PowerShell делает изменение.

С вышеуказанными точками тест, который вы управляете локально, больше не действителен.

В этом сообщении в блоге вы собираетесь научиться использовать самые популярные рамки тестирования для PowerShell под названием Petter Отказ

Предварительные условия

Чтобы следовать в этом сообщении в блоге, вам нужно следующее:

Установить Pester

Если это первый раз, когда вы запускаете Pester Framework, в зависимости от вашей операционной системы, вы, скорее всего, придется установить ее. Процесс установки выполнен с Установка-модуль Командлет, который является родным в PowerShell во всех операционных системах.

Чтобы установить Pester, запустите следующий командлет:

Install-Module -Name Pester

После того, как вы запустите командлет, вы должны увидеть вывод, похожий на скриншот ниже. Примите все модули и пробурь. Чтобы подтвердить установку, запустите следующий командлет:

Get-InstalledModule -Name Pester

Посмотрите на код PowerShell для тестирования

Перед запуском любого типа Pester вам нужен код для использования в Petter для использования. Чтобы принять первый взгляд на Petter, тест не должен быть сложен. Это может быть простой функцией PowerShell, которая состоит из нескольких строк кода. В этом разделе вы посмотрите на код, который вы будете использовать для тестирования.

Откройте VS-код и создайте новый файл для функции PowerShell для существования.

Функция PowerShell ниже выполняет следующее:

  • Создает новую функцию под названием Create-Dir.
  • Настраивает cmdletbinding () [] Чтобы включить функцию в расширенную функцию. Усовершенствованная функция дает возможность использовать Verbose, Eurraction и т. Д.
  • Блок параметра устанавливает два параметра, путь, в котором вы хотите создать новый каталог и новое имя каталога.
  • Cmdlet, используемый для создания пути, это Новый элемент Отказ

Если вы запускаете код ниже, и укажите имя и путь каталога, вы увидите, что был создан новый каталог:

function Create-Dir {
    [cmdletbinding()]
    param(
        [string]$path,
        [string]$dirName
    )

    New-Item -Name $dirName -Path $path
}

Скриншот ниже показывает пример создания каталога, называемого TaptPath в /Пользователи/Michaellevan/ каталог:

Напишите первый тест

Теперь, когда у вас есть код на месте, вы можете понять, что вы хотите, чтобы тест был похож на. Испытания для Petter варьируются на основе не только длины, но функциональности. В этом разделе вы посмотрите на базовый компьютерный тест, чтобы начать.

Существует практика разработки программного обеспечения под названием Тестовое развитие (TTD) Если вы определяете тесты сначала, а затем напишите код на основе этих тестов. Этот пост блога не следит за этой методологией, но это, безусловно, интересная тема.

  1. В VS Code откройте новый файл и назовите его Tests.ps1. . Тесты Ключевое слово позволяет PowerShell знать, что вы запускаете тест, и VS код даст некоторые дополнительные возможности, такие как возможность выполнить тест от IDE.
  2. В Tests.ps1 Файл, вставка в следующий код, который является самим тестом:
Describe "Directory Creation" {
    Context 'Path' {
        It 'should contain: path_that_you_used_for_the_function'
        $path = 'path_that_you_used_for_the_function'
        $path | Should -Exist
    }

    Context "New Directory" {
        It 'Should create a new directory called TestDir'
        $dir = 'TestDir'
        $dir | Should -Be 'TestDir'
    }
}

Прежде чем запустить тест, давайте перейдем на него.

  • Вы начинаете с Опишите блокировать. Охранчивый блок определяет группу испытаний PowerShell. Все файлы Pester должны содержать как минимум один клиентский блок.
  • Второй блок, который вы увидите, это Контекст Отказ Контекстный блок определяет тесты подгруппы внутри блока «Описать». Контекст подходит, потому что он позволяет писать несколько блоков тестов.
  • В блоке контекста вы увидите ключевое слово под названием Это Отказ Это используется для определения одного теста. Это действительно отлично, потому что вы можете сделать код звука как натуральный язык. Например, Это Тест мог сказать Это должно содержать:/Пользователи/Михаильвань ‘ Отказ
  • Где вы определяете тест, вы увидите Должен Отказ Должен Команда используется для определения утверждений, aka, что вы хотите, чтобы тест делать с информацией, которую вы ее даете.

Как только тест в Tests.ps1 Файл, вы увидите некоторые варианты для запуска теста, как показано на скриншоте ниже.

Запустите тест на единицу

В предыдущем разделе вы определили именно то, что должен выглядеть тест. Испытание должно иметь два отдельных теста; Один для проверки пути и другой для проверки, если новый каталог называется Testdir Отказ

В этом разделе вы узнаете, как запустить тест и то, что необходимо выглядеть.

В пределах Tests.ps1 Файл, нажмите на Пробежать тесты кнопка для запуска теста. После того, как вы запустите тест, вы должны увидеть вывод, аналогичный скриншоту ниже.

Как видите, тест нашел каталог и подтвердил, что созданный новый каталог IS Testdir Отказ

Поздравляю! Вы официально создали и запустили тест, используя Puster, структуру тестирования PowerShell.

Вывод

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

В этом сообщении вы узнали из первых рук, что такое Pester, почему вы должны использовать его, и как его использовать. Если вы хотите больше погрузиться в Petter, я рекомендую эту книгу Адамом Бертрамом: ПУСТЕР КНИГА Отказ

Если вы хотите найти код, используемый в этом сообщении в блоге, проверьте Github repo Отказ

Оригинал: «https://dev.to/octopus/testing-powershell-code-with-pester-m91»