Покрытие кода может быть противоречивой темой, если вы его позволите, но я чувствую, что это один из многих инструментов, которые можно использовать, чтобы убедиться, что вы на правильном пути. Для тех, кто не знает, кодовое покрытие (или тестовое покрытие) — это измерение того, сколько вашего исходного кода вы тестируете. Тем не менее, тем больше вашего кода вы тестируете, тем лучше. Я согласен, и я пытаюсь написать тесты для каждой функции, которую я пишу в модуле.
В этом конкретном блоге мы собираемся исследовать, как создать метрики покрытия кода и автоматически отправлять результаты на сервис Codecov.io , который в свою очередь представит результаты, чтобы мы могли видеть изменения со временем. У Codeecov есть щедрый свободный уровень, который дает вам неограниченные репозитории, а также все колокола и свистки!
Пример обзора приборной панели вы получаете в CodeCov. Источник: Модуль Cloud-IQ PowerShell
Настройка, готовые кодеки и Действия GitHub
Это на самом деле довольно простой процесс. То, что мы хотим, это зарегистрироваться на CodeCov и найти токен загрузки для нашего хранилища. Вы можете следовать за несколько шагов, найденных в разделе «Быстрый раздел» на Codecov.io Отказ Настройте загрузку токена как секрет в репозитории GitHub.
Действие GitHub можно настроить так.
name: 'Code Tests'
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
codecov:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2
- name: pester
run: |
Set-PSRepository psgallery -InstallationPolicy trusted
Install-Module -Name Pester -RequiredVersion 5.0.4 -Force;
$paths = @(
'.\path01\*.ps1'
'.\path02\*.ps1'
)
Invoke-Pester -Path "tests" -CodeCoverage $paths -CodeCoverageOutputFileFormat "JaCoCo";
shell: pwsh
- name: Codecov
uses: codecov/codecov-action@v1.0.13
with:
name: BuildName
token: ${{ secrets.CODECOV }}
file: coverage.xml
Здесь мы определяем, какие пути мы хотим, чтобы Pester создать отчет о покрытии кода, и что формат должен быть Якоко что это то, что кодеков понимает. Далее мы загружаем файл XML в CodeCov, используя свой собственный диск GitHub, поставляя токен загрузки, который мы устанавливаем в качестве секрета репозитория.
Не стесняйтесь комбинировать работу кодеков с другими промежутками. Например, посмотрите на то, как я настроил многоплатформенный тест на одной работе и задание покрытия кода в другом здесь на Github Отказ Подробнее см. В моем блоге Post Использование действий GitHub для запуска автоматических испытаний для Petter Отказ
Оригинал: «https://dev.to/roberthstrand/code-coverage-for-powershell-module-development-1kh4»