最近個人でコード書いていまして。そちらにcodecovを導入したお話です。
リポジトリ
Salesforceの定義出力を頑張りたいなと思って作っています。途中なのでいろんなところが適当です。
Codecovとは
テストコードのカバレッジ率を出力してくれるサービスです。CIから発火することができるので、テストが起動するたびにカバレッジが取得できます。
良いところは公式ページを見てもらうとして、こういう部分かなと。
- 導入がとても楽
- バッジやグラフで状況が一目瞭然
- Codecov側でより詳細なコードカバレッジが見れる
- Slack連携もできる(未確認)
前提
私が作っていた環境はこのような感じです。
環境 | 状態 |
---|---|
Git | GitHub(パブリックリポジトリ) |
言語 | TypeScript |
テストフレームワーク | jest |
CI | GitHub Actions |
Node.jsのパッケージ作ろうとしている開発です。未完成です。
やったこと
Codecovに登録
公式ページに飛んでSign Up
すると、GitHub、Bitbucket、GitLabのどれでサインインするか選ぶ画面になります。ここはGitHubを選択し、自分のリポジトリを選択します。組織を選択することもできるようです。
トークンをGitHubに登録
Codecovに登録し、リポジトリを選択します。すると、トークンが発行されます。
GitHubのリポジトリページ -> Settings ->Secretsと移動します。そこに、CODECOV_TOKEN
という名前で、上記画像のUpload Token
の値を登録しておきます。GitHub Actionsを使用する場合、STEP2の手順は不要です。
テストでカバレッジを出力するように変更
jestの設定を変えます。jest.config.js
にcollectCoverage: true
の設定を加えます。また、カバレッジの出力先を指定しておきます。
sfdxobject/jest.config.js at develop · piroron/sfdxobject · GitHub
GitHub ActionsにCodecovへのアップロード処理を追加
ググるといろんな内容が見つかりますが、今はGitHub Actionsでcodecov/codecov-action@v1
というものが公開されているため、これを呼ぶだけです。token
で先ほど指定したSecretsのキー、カバレッジ出力のディレクトリを指定しています。
コミットはこちら。
chnage action file · piroron/sfdxobject@96ed5bd · GitHub
バッジを表示する
これは、CodecovでURLを発行する方法が楽です。
Codecovでリポジトリ開く -> Settings -> Badgeと選んでいくと、Markdown、HTML、RSTにバッジ出力するためのコードが表示されます。
今回はREADME.md
に表示したかったので、markdownを選択してバッジを出しました。
ちゃんと出ます。
プルリクにカバレッジ表示
GitHub Apps - Codecov · GitHub
GitHub Appsにインストールすると、プルリクのコメントにカバレッジを表示してくれます。コメントを追加しただけのプルリクを作ると下記のように出てきます。カバレッジが変更されないので意味ないですが…参考として。
おわりに
楽ですね。これだけでいいとは…
実際は、GitHub Actionsの場合どうするのかあまり書いてなく、なんとなく書いたら動いた感じです。jestとTypeScript組み合わせた場合の話は無かったものの、設定自体は下記を見ました。
その他の言語についても下記に一覧があります。
いきなり組織に導入しようとするのではなく、個人でまずはやってみることもできるので、これからテストをちゃんとやっていこうとする人などは試してみると楽しいと思います。