Покрытие кода может быть противоречивой темой, если вы его позволите, но я чувствую, что это один из многих инструментов, которые можно использовать, чтобы убедиться, что вы на правильном пути. Для тех, кто не знает, кодовое покрытие (или тестовое покрытие) — это измерение того, сколько вашего исходного кода вы тестируете. Тем не менее, тем больше вашего кода вы тестируете, тем лучше. Я согласен, и я пытаюсь написать тесты для каждой функции, которую я пишу в модуле.
В этом конкретном блоге мы собираемся исследовать, как создать метрики покрытия кода и автоматически отправлять результаты на сервис 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»