Когда вы работаете с любым кодом, будь то автоматизация или программный код, его следует обрабатывать так же. В конце концов, функции все еще функции, а переменные все еще являются переменными. Одна из многих вещей, которые не придумывают так часто, когда вы автоматизируете VS, когда вы создаете тестирование приложений.
Устройство тестирования и тестирование издевательства чрезвычайно важны в скриптах и автоматизации.
Подумайте об этом сценарии: Я проверил функцию PowerShell локально, и это работает! Это сделало точное, что мне нужно, и теперь я собираюсь хранить его в Github, поэтому его можно использовать позже.
Хорошо, что это было проверено локально, но тест, который вы побежали, теперь в прошлом, и несколько вещей могут случиться:
- Новые версии кода могут быть созданы.
- Ошибки могут быть введены путем изменения кода.
- Новые функции могут быть добавлены.
- Код используется в другой системе или операционной системе.
- Модуль PowerShell, который вы используете, получает обновление или изменено.
- API позвонит модуль PowerShell делает изменение.
С вышеуказанными точками тест, который вы управляете локально, больше не действителен.
В этом сообщении в блоге вы собираетесь научиться использовать самые популярные рамки тестирования для PowerShell под названием Petter Отказ
Предварительные условия
Чтобы следовать в этом сообщении в блоге, вам нужно следующее:
- Понимание Устройство тестирования И что он используется.
- Новичок до промежуточного уровня знания PowerShell.
- PowerShell Core Установлено в любой операционной системе.
- Визуальный студийный код (VS код) установлены.
Установить 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) Если вы определяете тесты сначала, а затем напишите код на основе этих тестов. Этот пост блога не следит за этой методологией, но это, безусловно, интересная тема.
- В VS Code откройте новый файл и назовите его
Tests.ps1..ТестыКлючевое слово позволяет PowerShell знать, что вы запускаете тест, и VS код даст некоторые дополнительные возможности, такие как возможность выполнить тест от IDE. - В
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»