1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

テスト自動化あるある言いたい by T-DASHAdvent Calendar 2024

Day 17

Github Actionsで始める!Python自動テストのちょー基本ガイド

Last updated at Posted at 2024-12-16

GithubActionsでPythonの自動テストの実行について

GithubActionsは、コードをリポジトリにプッシュしたタイミングで自動的にテストを実行する便利なCI/CDツールです。本記事では、Pythonプロジェクトにおいて自動テストを実行する方法を解説します。

1. 必要なファイルを準備する

Pythonプロジェクトとテストコード

以下のような構成を例とします:

my_project/
├── src/
│   └── main.py
├── tests/
│   └── test_main.py
└── requirements.txt

各ファイルの説明

1.1 src/main.py

アプリケーションのメインコードを配置します。この例では簡単な関数を用意します:

# src/main.py
def add(a, b):
    return a + b

1.2 tests/test_main.py

テストコードを配置します。pytestを使用して関数の動作を検証します:

# tests/test_main.py
from src.main import add

def test_add():
    assert add(2, 3) == 5
    assert add(-1, 1) == 0
    assert add(0, 0) == 0

1.3 requirements.txt

プロジェクトの依存関係を管理します。このファイルにはテストフレームワークやその他の必要なパッケージを記載します:

# requirements.txt
pytest

GithubActionsの設定ファイル

リポジトリのルートに.github/workflows/test.ymlを作成します。このファイルにCI/CDパイプラインを定義します。

2. GithubActionsの設定ファイルの記述

以下は.github/workflows/test.ymlの例です:

name: Python Tests

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.13'

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt

      - name: Set PYTHONPATH
        run: echo "PYTHONPATH=$(pwd)" >> $GITHUB_ENV

      - name: Run tests
        run: pytest

3. ファイルの詳細解説

トリガーイベント

以下の設定で、mainブランチへのプッシュやプルリクエストがトリガーとなります:

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

ジョブ設定

ジョブはubuntu-latest上で実行されます。ステップごとに以下の操作を行います:

  1. リポジトリをクローン:

    uses: actions/checkout@v3
    
  2. Pythonのセットアップ:

    uses: actions/setup-python@v4
    with:
      python-version: 3.10
    
  3. 依存関係のインストール:

    python -m pip install --upgrade pip
    pip install -r requirements.txt
    
  4. テストの実行:

    pytest
    

4. 実行結果の確認

Githubのリポジトリページにアクセスし、Actionsタブを開きます。設定したワークフローが実行され、テスト結果が確認できます。

5. 注意点とベストプラクティス

  • Pythonバージョン: 必要なPythonバージョンをsetup-pythonで正確に指定します。
  • 依存関係管理: requirements.txtを正確に記載し、環境を再現可能にします。
  • テストカバレッジの向上: より多くのケースを網羅するテストを書きましょう。

以上の手順で、GithubActionsを使ったPythonの自動テストが構築できます。効率的なCI/CDを目指して、ぜひ導入してみてください!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?