GitHub Actionsでテストのエラーをわかりやすく表示する

CircleCIにはJUnit形式のテストレポートを食わせてテスト結果をわかりやすく表示してくれる機能があるのですが、GitHub Actionsでも同じようなことができないかなと思って調べてみたところ、以下のアクションを使えばできそうなので試してみました。

github.com

使い方は簡単で、テスト実行後にこんな感じの設定を追加するだけ。

- name: Publish Test Report
  uses: mikepenz/action-junit-report@v2
  if: always()
  with:
    report_paths: '**/build/test-results/test/TEST-*.xml'

Scalaプロジェクトの場合、sbtがtarget/test-reportsディレクトリ配下にJUnit形式のテストレポートを出力してくれるのでreport_pathsを以下のような感じにしておけばOKです。

report_paths: '**/target/test-reports/TEST-*.xml'

テストが失敗した場合、以下のように表示されます。失敗したテストケースとエラー内容を簡単に把握することができます。

f:id:takezoe:20210912122137p:plain

CIでテストが失敗した場合、どのテストがどういうエラーで失敗したのかをコンソールに出力されるログからすぐに見つけることが難しかったりするので、特にテストケースが大量にあるプロジェクトではこのアクションはなかなか便利そうです。