Рубрики
Uncategorized

Кодовое покрытие для разработки модуля PowerShell

Кодовое покрытие может быть противоречивой темой, если вы позволите ей, но я чувствую, что это один из многих … Помечено PowerShell, PowerShellmodule, DevOps, Github.

Покрытие кода может быть противоречивой темой, если вы его позволите, но я чувствую, что это один из многих инструментов, которые можно использовать, чтобы убедиться, что вы на правильном пути. Для тех, кто не знает, кодовое покрытие (или тестовое покрытие) — это измерение того, сколько вашего исходного кода вы тестируете. Тем не менее, тем больше вашего кода вы тестируете, тем лучше. Я согласен, и я пытаюсь написать тесты для каждой функции, которую я пишу в модуле.

В этом конкретном блоге мы собираемся исследовать, как создать метрики покрытия кода и автоматически отправлять результаты на сервис 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»