#powershell #appveyor #pester #pester-5
Вопрос:
У меня есть модуль PowerShell на github, который обеспечивает автоматизацию в AppVeyor, включая тестирование и публикацию.
Одно из недавних изменений нарушило работу новой версии Windows PowerShell. Некоторые группы все еще работают в Windows PowerShell, и они сообщили мне об этом (бывшие коллеги).
Мой вопрос в том, может ли и как данный модуль быть протестирован для обеих версий с помощью Pester. Очевидно, что в системе Windows вы можете запустить тест с pwsh
помощью или powershell
, но мне интересно, есть ли более чистая установка, работающая на Pester
v5.
Кроме того, мне интересно, как это было бы возможно с AppVeyor, потому что в документе нет изображения как с v5, так и с v7 powershell? В качестве альтернативы в документе упоминается, что можно использовать несколько изображений, но я не понимаю, что произойдет. Цель состоит в том, чтобы протестировать на Windows и core и опубликовать один раз.
Комментарии:
1. Что касается вашего последнего вопроса: Используйте несколько изображений
Ответ №1:
Раньше я делал это через AppVeyor для некоторых моих модулей PowerShell. Мой вариант использования на самом деле состоял в том, чтобы тестировать как под Linux, так и под Windows, но при этом я эффективно тестировал ядро PS и Windows PowerShell. Модуль больше не использует AppVeyor, но я вернулся в историю фиксации и вытащил нижеприведенное из его appveyor.yml.
Как сказал Матиас, вы хотите использовать несколько изображений, и при необходимости вы также можете использовать разные изображения для запуска разных сценариев сборки:
image:
- WMF 5
- Ubuntu
- Visual Studio 2017
# Skip on updates to the readme.
# We can force this by adding [skip ci] or [ci skip] anywhere in commit message
skip_commits:
message: /updated README.*|update README.*s/
build: false
#Kick off the CI/CD pipeline
test_script:
- pwsh: .build.ps1
for:
-
matrix:
only:
- image: WMF 5
test_script:
- ps: .build.ps1
Я думаю, что для этого используются 3 образа, потому что он тестировался на Windows PowerShell, PS Core в Ubuntu и PS Core в Windows.
Комментарии:
1. Спасибо. Ваши цели идентичны моим, и образ linux/windows-это то, как я об этом думал. Из вашего файла yaml я не уверен, что понимаю, чем это отличается для каждого экземпляра, потому что у вас один и тот же
build.ps1
вызов без каких-либо условий. Мой вопрос в том, как складываются изображения для тестирования и одной публикации. Я предполагаю, что все изображения проходят тест, а последнее публикуется (если другие изображения в порядке), и вы контролируете это с помощью переменных и параметров и т. Д.2. Ваше право, это та же сборка.ps1, но один вызывается с помощью
pwsh
, который использует ядро PowerShell, а другой с помощьюps
, который использует Windows PowerShell. Я думаю, что когда я использовал его, я просто опубликовал последнее изображение, но будьте осторожны, я думаю, что по умолчанию они могут выполняться параллельно.