RSpec + SimpleCov로 측정 한 커버리지 보고서를 Gitlab Pages에 호스팅

RSpec + SimpleCov로 측정 한 커버리지 보고서를 Gitlab Pages에 호스팅



할 일



  • simplecov에서 rspec에서 실행 한 테스트 커버리지 보고서를 출력합니다
  • .
  • 출력 된 커버리지 보고서를 Gitlab Pages에 호스팅
  • 다음과 같이 프로젝트에 배지를 표시하여 한 눈에 커버리지를 알 수 있습니다.


  • 절차



    rspec과 simplecov 도입



    이미 도입된 경우에는 적절히 날려 주십시오.

    gem 설치



    Gemfile
    gem 'rspec'
    gem 'simplecov'
    
    $ bundle install
    

    spec_helper.rb에 simplecov를로드하는 설정 추가



    spec_helper.rb
    require 'simplecov'
    SimpleCov.start
    

    .gitlab-ci.yml에 pages 작업 추가


    pages 작업을 추가합니다.
    기본적으로는 다음과 같은 흐름이 됩니다.

    .gitlab-ci.yml
    image: ruby:2.6
    
    before_script:
      - bundle install
    
    pages:
      stage: deploy
      script:
        - bundle exec rspec
        - mv coverage public
      coverage: '/\(\d+.\d+\%\) covered/'
      artifacts:
        paths:
          - public
      only:
        - master
    

    Gitlab Pages는 public 디렉토리의 내용을 호스팅하지만,
    Rails의 경우 public 폴더를 사용하고 있다고 생각하므로 coveragepublic로 이동하기 전에,
    아래와 같이 public 디렉토리를 피하면 좋다고 생각합니다.

    .gitlab-ci.yml
      script:
        - bundle exec rspec
        - mv public .public # publicディレクトリを避ける
        - mv coverage public
    

    이하 줄은 있어도 없어도 좋다고 생각합니다만, 써 두면,
    작업의 출력 결과 사이드바에 커버리지가 표시되는 것 같습니다.

    .gitlab-ci.yml
      coverage: '/\(\d+.\d+\%\) covered/' # Job出力結果から正規表現でカバレッジを取得する
    



    최선을 다하고 테스트 작성



    commit and push



    배지 표시 설정



    테스트 커버리지 분석 설정


    Settings > CI / CD > General pipelines > Test coverage parsing를 열면 Simplecov (Ruby)의 example이 쓰여 있기 때문에, 말씀대로 붙여 넣고 저장해 봅니다.
    ※Job의 출력 결과로부터 커버리지를 픽업하기 위한 정규 표현입니다.



    프로젝트에 라벨 추가


    Settings > General > Badges을 열고 프로젝트 배지를 등록합니다.
    Link : 배지 도착 (배포 된 커버리지 보고서 URL)https://グループ名.gitlab.com/プロジェクト名 와 같습니다.Settings > Pages에서 확인할 수 있습니다.
    Badge image URL : 배지 이미지 URLhttps://gitlab.com/グループ名/プロジェクト名/badges/ブランチ名/coverage.svg 와 같습니다.



    목표



    이제 프로젝트의 톱 페이지에 배지가 표시됩니다!
    배지를 클릭하면 커버리지 보고서가 표시됩니다.
    편리



    일단 설정하면master에 병합할 때마다 테스트가 자동 실행되어 커버리지 리포트가 남기 때문에, 매우 편리하게 사용하고 있습니다!
    눈에 보이는 곳에 숫자가 있으면 테스트를 작성하는 것이 재미 있습니다

    끝까지 읽어 주셔서 감사합니다.

    샘플 프로젝트



    샘플 프로젝트를 아래에 둡니다. 참고로. .
    htps : // 기트 b. 코 m / 감기의 거리 / 코 ょ 라게 _ 사 mp ぇ

    좋은 웹페이지 즐겨찾기