PowerShell 모듈 개발을 위한 코드 커버리지

코드 커버리지는 논쟁의 여지가 있는 주제가 될 수 있지만 올바른 길을 가고 있는지 확인하는 데 사용할 수 있는 많은 도구 중 하나라고 생각합니다. 코드 커버리지(또는 테스트 커버리지)는 테스트 중인 소스 코드의 양을 측정한 것입니다. 테스트하는 코드가 많을수록 좋습니다. 나도 동의하고 모듈에 작성하는 모든 단일 함수에 대한 테스트를 작성하려고 합니다.

이 특정 블로그에서는 코드 적용 범위 지표를 생성하고 자동으로 결과를 서비스codecov.io로 전송하는 방법을 살펴보겠습니다. 그러면 시간 경과에 따른 변화를 볼 수 있도록 결과가 표시됩니다. Codecov에는 무제한 리포지토리와 모든 종소리와 휘파람을 제공하는 넉넉한 무료 계층이 있습니다!



Codecov에서 얻을 수 있는 개요 대시보드의 예입니다. 출처: Cloud-iQ PowerShell module

설정, 준비된 Codecov 및 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/[email protected]
        with:
          name: BuildName
          token: ${{ secrets.CODECOV }}
          file: coverage.xml



여기서 우리는 Pester가 코드 커버리지 보고서를 생성하기를 원하는 경로를 정의하고 형식은 Codecov가 이해하는 JaCoCo여야 합니다. 다음으로 자체 GitHub 작업을 사용하여 xml 파일을 Codecov에 업로드하고 저장소 비밀로 설정한 업로드 토큰을 제공합니다.

codecov 작업을 다른 pester 테스트와 자유롭게 결합하십시오. 예를 들어, 한 작업에서 다중 플랫폼 테스트를 설정하고 다른 작업에서 코드 검사 작업을 설정한 방법을 살펴보십시오here on GitHub. 자세한 내용은 내 블로그 게시물 을 참조하십시오.

좋은 웹페이지 즐겨찾기