GitHub ActionsでPythonのpytestを自動実行&表示させてみた

はじめに

この記事では、「GitHub ActionsでPythonのpytestを自動実行&表示させる方法」について書いています。

GitHub Actionsでは様々なことが自動化でき、テストも自動化できますが、その結果も見やすい形で表示されてくれないかなと思ったのが記事を書いたきっかけでした。

自分に向けた備忘録でもありますが、「GitHub ActionsでPythonのpytestの結果をGitHub上で表示させたい」な人の一助になれば嬉しいです。

やり方

早速、pytestの実行と表示を行うコードです

name: Run and display pytest

on:
  workflow_dispatch:

jobs:
  pytest:
  
    runs-on: ubuntu-latest

    steps:
      # リポジトリをチェックアウト
      - name: Checkout code
        uses: actions/checkout@v3

      # Pythonの環境をセットアップ
      - name: Setup Python
        uses: actions/setup-python@v3
        with:
          python-version: 3.11

      # pytestをインストール
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install pytest

      # JUnit形式でpytestの結果を出力
      - name: Run pytest
        run: |
          python -m pytest --junit-xml results/pytest.xml
        continue-on-error: true

      # テスト結果をアップロードする
      - name: Upload results
        uses: actions/upload-artifact@v3
        with:
          name: test_results
          path: results/*.xml

      # テスト結果をダウンロードする
      - name: Download results
        uses: actions/download-artifact@v3
        with:
          name: test_results
          path: artifacts

      # テスト結果をGitHub上で表示する
      - name: display results
        uses: EnricoMi/publish-unit-test-result-action@v1
        with:
          files: artifacts/**/*.xml

上のコードは、手動トリガでpytestを実行、その結果をGitHub上で表示してくれます。

表示のされ方は以下の画像のような感じで、下の部分に「pytest summary」とあり、この部分にpytestの結果が表示されます。

Note

画像の中央付近(この間省略、の部分)は、今回の話とは関係ない余計な部分があったため、画像処理で切り取って見やすくしています。

おわりに

GitHub ActionsでPythonのpytestを自動実行&表示させる方法」について解説しました。

GitHub Actionsを使いこなして、様々なことを自動化させて開発を効率化していきましょう。

ここまで読んで下さりありがとうございます。

さいごに、記事を書く上で参考にしたサイトのリンクを以下に掲載します。合わせて読んでいただくと良いかと思います。

qiita.com