カテゴリ: Flask 更新日: 2026/02/22

FlaskアプリのテストをGitHub Actionsで自動化する方法まとめ!初心者向け解説

FlaskアプリのテストをGitHub Actionsで自動化する方法まとめ
FlaskアプリのテストをGitHub Actionsで自動化する方法まとめ

先生と生徒の会話形式で理解しよう

生徒

「Flaskアプリのテストを自動化したいのですが、どうすれば良いですか?」

先生

「GitHub Actionsを使うと、Flaskのテストを自動化して、プルリクエストやコミットのたびにテストを実行できます。」

生徒

「GitHub Actionsって聞き慣れないですが、初心者でも使えますか?」

先生

「はい、設定ファイルを書くだけで簡単に自動化できます。順を追って解説しますので安心してください。」

1. GitHub Actionsとは?

1. GitHub Actionsとは?
1. GitHub Actionsとは?

GitHub Actionsは、GitHub上で決められた作業を自動で実行してくれる仕組みです。難しそうに聞こえますが、「特定のタイミングで決まった操作を代わりにやってくれるロボット」と考えると分かりやすいです。Flaskアプリ開発では、コードを保存・共有するたびに、テストや確認作業を自動で行わせる目的でよく使われます。

たとえば、手動で毎回テストを実行する代わりに、GitHubにコードを送信した瞬間に、自動でテストが始まるように設定できます。これにより「テストを忘れていた」「動くと思っていたらエラーがあった」といったミスを防げます。

初心者でも、特別な操作は不要で、用意された設定ファイルを書くだけで使えるのが特徴です。以下は「プッシュされたら処理を実行する」という考え方をイメージするための、とても簡単なサンプルです。


on:
  push:
    branches: [ main ]

このように書くことで、「mainブランチにコードが送られたら何かを実行する」というルールをGitHubに伝えられます。実際のテスト内容は後ほど設定しますが、まずは「自動で動く仕組みがある」という点を理解することが大切です。

2. GitHub Actionsの設定ファイルの場所

2. GitHub Actionsの設定ファイルの場所
2. GitHub Actionsの設定ファイルの場所

GitHub Actionsを使うときは、リポジトリ(GitHubに置いているプロジェクト)の中に、決まった場所と名前で設定ファイルを用意します。具体的には、プロジェクトのルートに.githubフォルダを作り、その中にworkflowsフォルダを作成します。最終的に.github/workflowsという形になればOKです。

このworkflowsフォルダの中に、.ymlまたは.yamlという拡張子のファイルを置くと、GitHubが「これは自動実行の手順書だな」と判断して読み込んでくれます。ファイル名は自由ですが、例としてflask-ci.ymlのように内容が想像できる名前にしておくと管理が楽です。

イメージしやすいように、最低限の配置は次のようになります(中身は後で書き足していきます)。


your-repo/
  .github/
    workflows/
      flask-ci.yml

つまり「どこに置くか」が一番大事で、ここさえ間違えなければGitHub Actionsは動き始めます。逆に、フォルダ名のスペルが違ったり、別の場所に置いてしまうと、設定を書いても反映されないので注意してください。

3. Flaskアプリのテスト自動化の基本設定

3. Flaskアプリのテスト自動化の基本設定
3. Flaskアプリのテスト自動化の基本設定

Flaskアプリでテストを自動化するときは、まず「テストを実行するコマンド」をGitHub Actionsに覚えさせます。ここでは初心者に定番のpytestを使う例で紹介します。ポイントは、GitHub上のまっさらな環境(Linux)に、ソースコードを取り出して、Pythonを用意して、必要なライブラリを入れてからテストを走らせる、という順番です。

以下は、プッシュやプルリクエストのタイミングでテストを動かす最小構成のサンプルです。コピペして動く形に近いので、まずはこのまま配置して試すのがおすすめです。


name: Flask CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: 3.11
      - name: Install dependencies
        run: |
          pip install -r requirements.txt
          pip install pytest
      - name: Run tests
        run: |
          pytest

流れをかみ砕くと、actions/checkoutでリポジトリの中身を取り出し、setup-pythonでPythonの実行環境を準備します。その後pipで依存ライブラリとpytestをインストールし、最後にpytestコマンドでテストを実行します。テストに失敗すると処理が止まり、GitHub上で「失敗した」と分かるので、見落とし防止にも役立ちます。

(参考)pytestが動く最小のテスト例

テストファイル名はtest_で始めるのが一般的です。例えばプロジェクト内にtests/test_sample.pyのようなファイルを作り、まずは「必ず通るテスト」を1つ置いて、Actionsが動くか確認するとスムーズです。


def test_sample():
    assert 1 + 1 == 2

このテストが通れば、GitHub Actions側の設定とpytestの実行がひとまず成功しているサインになります。あとは、Flaskの機能に合わせてテストを少しずつ増やしていけばOKです。

4. coverage.pyを使ったテストカバレッジ測定

4. coverage.pyを使ったテストカバレッジ測定
4. coverage.pyを使ったテストカバレッジ測定

テストが自動で動くようになったら、次に気になるのが「ちゃんと重要な部分までテストできているか?」という点です。そこで役立つのがcoverage.pyです。coverage.pyは、テスト実行中に「どのファイルの、どの行が通ったか」を記録してくれるツールで、テストの当たり具合(テストカバレッジ)を数字で確認できます。

たとえばカバレッジが低いと、「テストを書いたつもりでも、実はほとんど動かしていないコードがある」と気づけます。逆に高いほど安心材料になりますが、まずは“未テストの場所を見つける”目的で使うのが分かりやすいです。

GitHub Actionsに組み込む場合は、テスト実行をcoverage runに置き換えるだけでOKです。以下のように追加すると、テストと同時にカバレッジの集計まで自動で行えます。


      - name: Install coverage
        run: pip install coverage
      - name: Run tests with coverage
        run: |
          coverage run -m pytest
          coverage report

coverage reportを実行すると、結果が文字の一覧で表示されます。ここで「どのファイルが何%テストされたか」をざっくり把握できるので、初心者でも改善ポイントを見つけやすくなります。テストを増やすと数字が上がっていくので、成長が見えるのもメリットです。

5. HTMLレポートを作成して確認する方法

5. HTMLレポートを作成して確認する方法
5. HTMLレポートを作成して確認する方法

カバレッジの数字だけでも状況は分かりますが、「どの行が未テストなのか」を目で見て確認したいときは、HTMLレポートが便利です。coverage.pyは、テスト結果をWebページのような見た目で出力してくれるので、ブラウザで開くだけでチェックできます。未テストの行が目立つ形で表示されるため、初心者でも「次にどこをテストすればいいか」が直感的に分かります。

GitHub Actionsでは、テスト実行のあとにHTMLレポートを生成するコマンドを追加します。最低限は次の1行でOKです。


      - name: Generate HTML report
        run: coverage html

このコマンドを実行すると、通常はプロジェクト内にhtmlcovというフォルダが作られ、その中にindex.htmlなどのファイルが出力されます。ローカルで確認する場合は、そのindex.htmlをダブルクリックしてブラウザで開くだけです。

そして、GitHub Actions上で作ったHTMLレポートは「アーティファクト」としてアップロードしておくと、チームメンバーも同じレポートをダウンロードして確認できます。数字の報告だけでは伝わりにくい部分も、HTMLだと同じ画面を見ながら話せるので、レビューや改善が進めやすくなります。

6. 自動化のメリット

6. 自動化のメリット
6. 自動化のメリット

GitHub ActionsでFlaskアプリのテストを自動化すると、次のようなメリットがあります。

  • プッシュやプルリクエストのたびにテストが自動で走る
  • カバレッジ測定でテスト漏れがすぐに分かる
  • チーム全員が最新のテスト結果を確認できる
  • 手動でのテスト実行ミスを防止できる

7. 実践のポイント

7. 実践のポイント
7. 実践のポイント

初心者の方は、まず最小限のテストコードでGitHub Actionsを動かすことから始めましょう。その後、coverage.pyでカバレッジを確認しながら、少しずつテストを増やすと無理なく自動化を習得できます。さらに、必要に応じて通知機能を設定すれば、テストが失敗した場合にSlackやメールで知らせることも可能です。

8. ポイント整理

8. ポイント整理
8. ポイント整理

FlaskアプリのテストをGitHub Actionsで自動化するには、.github/workflowsにYAMLファイルを作成し、pytestやcoverage.pyを組み込むのが基本です。自動化により、テストの実行漏れを防ぎ、カバレッジを可視化しながらチームで効率的に開発できます。初心者でも、順を追って設定すれば安全に自動化を始められます。

カテゴリの一覧へ
新着記事
New1
Flask
認証と認可の違いを整理しよう!Flaskで押さえるべき基礎概念
New2
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New3
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New4
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.5
Java&Spring記事人気No5
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.6
Java&Spring記事人気No6
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.7
Java&Spring記事人気No7
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.8
Java&Spring記事人気No8
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう