👻

[GitHub Actions] GoogleTest の結果を PR に書く

2024/04/14に公開

[GitHub Actions] GoogleTest の結果を PR に書く

ポイント

  • GoogleTest 実行時に xml 出力する
  • GitHub Actions に PR 書き込み権限を付与する
  • xml の単体テストの実行結果を PR に書く Actions を使う

実サンプル

動作例

https://github.com/m-tmatma/googletest-sample-cmake/pull/19#issuecomment-2053806350

サンプルコード

https://github.com/m-tmatma/googletest-sample-cmake/blob/master/.github/workflows/cmake.yml

解説

以下解説では要点を見えやすくするために上記サンプルから少し簡略化している。

GoogleTest 実行時に xml 出力する

GoogleTest 実行時に --gtest_output で "xml:" を指定する。

ディレクトリで指定する場合

--gtest_output=xml:output/

ファイルで指定する場合

--gtest_output=xml:output.xml

GitHub Actions に PR 書き込み権限を付与する

permissions:
  checks: write
  pull-requests: write

xml の単体テストの実行結果を PR に書く Actions を使う

Linux の場合

    - name: Publish Test Results(Linux)
      uses: EnricoMi/publish-unit-test-result-action/linux@v2
      if: runner.os == 'Linux'
      with:
        files: |
          output/*.xml

Windows の場合

    - name: Publish Test Results(Windows)
      uses: EnricoMi/publish-unit-test-result-action/windows@v2
      if: runner.os == 'Windows'
      with:
        files: |
          output\*.xml

参考リンク

http://opencv.jp/googletestdocs/advancedguide.html#xml
https://docs.github.com/ja/actions/using-jobs/assigning-permissions-to-jobs
https://github.com/marketplace/actions/publish-test-results
https://github.com/EnricoMi/publish-unit-test-result-action

Discussion