GitHub Actions でテストカバレッジを取得する

GitHub Actions でテストカバレッジを取得する

Nov 25, 2019

GitHub Actionsを使ったFlutterのテストカバレッジを取得する方法を紹介します。

このエントリーをはてなブックマークに追加

前回GitHub Actionsを使って、Flutterの自動テストを行う方法を紹介しました。今回、それに合わせて自動でテストカバレッジを取得して、ステータスバッジを表示する方法を紹介します。

テストカバレッジ取得方法

Flutterでテストカバレッジを取得することは非常に簡単で、テストを行う時に--coverageオプションを付けるだけです。

$ flutter test --coverage

coverage/ディレクトリにテストカバレッジ結果が出力されます。

しかしこれだけ見てもよく分からないので、CodeCovと連携して視覚的に見やすくします。

CodeCov について

カバレッジを可視化するサービスとしてCodeCovがあり、ステータスバッジも生成してくれます。

オープンソースに関しては無料で、複数人で使っていくためには有料になります。公式サイトの料金ページで確認してください。

providerパッケージもCodeCovを使用しているので、プロジェクトのページを見てみるとどんな感じで可視化されるのか分かると思います。

準備

CodeCovのユーザ登録していない人は、こちらから登録してください。GitHub Actionsと連携したいのでGitHubアカウントと連携してください。

ユーザ登録が完了して、連携したいリポジトリを選択するとUpload Tokenが表示されます。

このトークンを使ってGitHub ActionsからCodeCovにアップロードするようになります。 GitHubのリポジトリの設定のSecretsCODECOV_TOKENという名前で保存しておきます。

自動テストカバレッジの取り方

前回.github/workflows/test.ymlをベースに、CodeCovと連携するコマンドを追加していきます。

name: Test

on: [push]

jobs:
  build:
  
  runs-on: ubuntu-latest
	  
  steps:
  - uses: actions/checkout@v1
  - uses: takuyaohashi/setup-flutter@v1
	with:
		flutter-version: 'latest'
  - name: install dependencies
	run: flutter pub get
  - name: analyze
	run: flutter analyze
  - name: test
	run: flutter test --coverage
  - name: upload coverage
	uses: codecov/codecov-action@v1
	with:
		token: ${{ secrets.CODECOV_TOKEN }}

テスト時にカバレッジを取得するようにオプションを追加して、CodeCovのアクションを使用してアップロードします。

ステータスバッジ表示

CodeCovの設定画面からコピペできます。以下のようなルールになっています。

[![codecov](https://codecov.io/gh/{account name}/{repository name}/branch/master/graph/badge.svg)](https://codecov.io/gh/{account name}/{repository name})

サンプルリポジトリ

Flutterpackageを対象に自動テストを行うサンプルリポジトリでテストカバレッジも取るようにしてみました。

このエントリーをはてなブックマークに追加