17
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GitHub ActionsAdvent Calendar 2020

Day 9

GithubActionsでRailsのテストカバレッジをレポートする

Posted at

はじめに

Railsでカバレッジ計測する場合に一番使われているgemは恐らくsimplecovではないかと思います。
simplecovでは、デフォルト設定の状態でhtmlのレポートファイルを生成してくれて大変見やすいのですが、コードレビューの度に目視でチェックというのはなかなか出来ないですよね。
テストカバレッジを見やすく手段の一つとして、Code Climate等のSaaSを利用するという方法もありますが、ユーザー数やリポジトリ数に比例して費用が大きくなっていきます。

そこで今回は、そこまで詳細なレポートは不要だけどコードレビュー時に全体のテストカバレッジを分かりやすく表示したいというケースで有用なアクションを作ったので紹介します。

設定方法

name: Tests
on:
  pull_request:

jobs:
  build:
    steps:
      # テストの事前準備色々...
      
      - name: Test
        run: bundle exec rspec

      - name: Simplecov Report
        uses: aki77/simplecov-report-action@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          # 以下はデフォルト設定
          # resultPath: coverage/.last_run.json
          # failedThreshold: 90
      
      # テストカバレッジの詳細を確認したい時の為
      - name: Archive coverage artifacts
        uses: actions/upload-artifact@v2
        with:
          name: coverage
          path: coverage
        if: always()

動作解説

上記の設定をすることでpull_requestイベント毎にテストカバレッジがコメント欄にレポートされるようになります。

Demo

細かい考慮点としては以下があります。

  • 同一PR内でテストカバレッジに変化がない場合は何もしない
  • 同一PR内でテストカバレッジに変化があった場合は以前のコメントを削除して新しくコメントする
  • テストカバレッジが設定した閾値(failedThreshold)を下回った場合には失敗する

Marketplace

Simplecov Report · Actions · GitHub Marketplace · GitHub

良かったら使ってみてください。

17
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?