GitHub Actionsは、GitHubのCI/CDツールで、pushやpull requestなどのGitHub上のアクティビティやスケジュールした時間、外部イベントをトリガーとして、ワークフローを作成できます。特にPythonのunittestを自動化する際には非常に便利です。

GitHub Actionsの基本

GitHub Actionsは、Linux, macOS, Windowsすべてのコンテナに対応しており、Node.js, Python, Java, Rubyなど、様々な言語に対応しています。ワークフローは、トリガーと1つ以上のジョブで構成され、リポジトリ内の.github/workflowsディレクトリにYAML形式で定義します。

Pythonのunittestの自動化

具体的には、ソースコードがGitHubへpushされたタイミングで、Pythonで書かれたテストをpytestを使って実行し、GitHub上に結果を表示します。以下に、その一例を示します。

name: Run pytest
on: [push]
jobs:
  pytest:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Set up Python 3.7
        uses: actions/setup-python@v2
        with:
          python-version: 3.7
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install pytest
      - name: PyTest
        run: |
          python -m pytest test --junit-xml results/pytest.xml
        continue-on-error: true
      - name: Upload Unit Test Results
        if: ${{ always() }}
        uses: actions/upload-artifact@v2
        with:
          name: Unit Test Results (Python 3.7)
          path: results/*.xml

この設定では、pushされた際に、Python 3.7をセットアップし、必要なパッケージをインストールした後、pytestを実行しています。テストの結果は、results/pytest.xmlに保存され、後から確認することができます。

このように、GitHub Actionsを用いることで、Pythonのunittestを簡単に自動化することができます。これにより、コードの品質を維持しつつ、開発の効率を向上させることが可能です。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です