GitHub Actionsを用いたテストコードの自動実行

image

はじめに

今回はGitHub Actionsを使用して、GitHubのリポジトリにプッシュした際にテストコードを自動的に実行する方法を紹介します。

GitHub Actionsとは

GitHub Actionsは、GitHub上でCI/CD(継続的インテグレーション/継続的デリバリー)を実現するためのツールです。 リポジトリの変更に応じて自動的にジョブ(テスト、ビルド、デプロイなど)を実行できます。

自動テストの設定手順

1. テストコードの準備

まず、リポジトリにFlutterのテストコードを用意します。 Flutterプロジェクトを作成したときにデフォルトで用意されているtest/widget_test.dartで試してみましょう。

2. GitHub Actionsの設定

リポジトリの.github/workflowsフォルダに、テスト実行用のワークフローファイル(例:flutter_test.yml)を作成します。

name: Run Flutter Tests

on:
  push:
    branches:
      - main
      - feature/*

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - name: Check out repository
        uses: actions/checkout@v4
      - name: Set up java
        uses: actions/setup-java@v2
        with:
          java-version: '17' # javaのバージョンを指定
      - name: Set up Flutter
        uses: subosito/flutter-action@v2
        with:
          flutter-version: '3.19.0' # Flutterのバージョンを指定
      - name: Install dependencies
        run: flutter pub get
      - name: Run tests
        run: flutter test

各項目の説明

項目名説明
nameワークフローの名前。GitHubのActionsで表示される。必須ではありませんが自分で理解できる名前をつけましょう。
onワークフローをトリガーするイベント。上の例ではmainとfeature/*のブランチにpushするたびに実行されます。
jobsジョブの定義。複数のジョブを定義することで一度のpushで複数のテストを実行することもできます。
runs-onジョブを実行する環境
stepsジョブ内で実行されるステップ
uses:使用するアクション
run:実行するシェルコマンド

3. ワークフローの実行

設定をプッシュすると、自動的にGitHubのActionsタブでワークフローが実行され、テスト結果が表示されます。 スクショではフロントエンドとバックエンドのテストを実行していて、成功した場合は緑のチェックマーク、失敗した場合は赤のバツマークとなります。

まとめ

今回はGitHub Actionsを使用してテストコードを自動的に実行する方法について解説しました。

GitHub Actionsを使用することで、手動のテスト実行が不要になり、開発効率が向上します。 CI/CDを導入することで、コード品質の維持にも役立ちます。

お知らせ

可茂IT塾ではFlutter/Reactのインターンを募集しています!

可茂IT塾ではFlutter/Reactのインターンを募集しています!

可茂IT塾ではFlutter/Reactのインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。

Read More
U30可茂ITインターンハッカソン

U30可茂ITインターンハッカソン

12月28,29日開催。2日間でアプリ開発の企画から完成までを目指す!U30可茂ITインターンハッカソンを開催します。

Read More

タグ

Flutter (120)初心者向け (31)イベント (19)Google Apps Script (17)Nextjs (12)可茂IT塾 (10)React (8)Firebase (7)riverpod (6)デザイン (6)ChatGPT (5)vscode (5)Figma (5)新卒 (4)就活 (4)Dart (4)JavaScript (4)お知らせ (4)FlutterWeb (3)Prisma (3)NestJS (3)Slack (3)TypeScript (3)ワーケーション (3)インターン (3)設計 (2)線型計画法 (2)事例 (2)Git (2)Image (2)File (2)Material Design (2)経験談 (2)画像 (2)iOS (2)アプリ開発 (2)React Hooks (2)tailwindcss (2)社会人 (2)大学生 (2)RSS (1)Google (1)Web (1)CodeRunner (1)個人開発 (1)Android (1)Unity (1)WebView (1)Twitter (1)フルリモート (1)TextScaler (1)textScaleFactor (1)学生向け (1)supabase (1)Java (1)Spring Boot (1)shell script (1)正規表現 (1)table (1)テーブル (1)hooks (1)react (1)パワーポイント (1)趣味 (1)モンスターボール (1)CSS (1)SCSS (1)Swift (1)MapBox (1)Cupertino (1)ListView (1)就活浪人 (1)既卒 (1)保守性 (1)iPad (1)シェアハウス (1)スクレイピング (1)PageView (1)画面遷移 (1)flutter_hooks (1)Gmail (1)GoogleWorkspace (1)ShaderMask (1)google map (1)Google Places API (1)GCPコンソール (1)Google_ML_Kit (1)Vercel (1)Google Domains (1)DeepLeaning (1)深層学習 (1)Google Colab (1)コード生成 (1)GitHub Copilot (1)GitHub Actions (1)オンラインオフィス (1)javascript (1)css (1)html (1)オブジェクト指向 (1)クラスの継承 (1)ポリモーフィズム (1)LINE Messaging API (1)LINE Notify (1)LINE (1)Bitcoin (1)bitFlyer (1)コミュニティー (1)文系エンジニア (1)build_runner (1)freezed (1)Freezed (1)ヒーター (1)作業効率 (1) (1)Flutter実践開発 (1) (1)permission_handler (1)flutter_local_notifications (1)markdown (1)GlobalKey (1)ValueKey (1)Key (1)アイコン (1)go_router (1)FireStorage (1)debug (1)datetime_picker (1)Apple Store Connect (1)FlutterGen (1)デバッグ (1)Widget Inspector (1)VRChat (1)API (1)検索機能 (1)Shader (1)Navigator (1)メール送信 (1)FlutterFlow (1)Firebase App Distribution (1)Fastlane (1)Dio (1)CustomClipper (1)ClipPath (1)video_player (1)IMA (1)カスタム認証 (1)アニメーション (1)Arduino (1)ESP32 (1)フリーランス (1)会社員 (1)mac (1)csv (1)docker (1)GithubActions (1)Dialog (1)BI (1)LifeHack (1)ショートカット (1)Chrome (1)高校生 (1)キャリア教育 (1)非同期処理 (1)生体認証 (1)BackdropFilter (1)レビュー (1)getAuth (1)クローズドテスト (1)PlayConsole (1)Algolia (1)コンサルティング (1)Symbol (1)

お知らせ

可茂IT塾ではFlutter/Reactのインターンを募集しています!

可茂IT塾ではFlutter/Reactのインターンを募集しています!

可茂IT塾ではFlutter/Reactのインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。

Read More
U30可茂ITインターンハッカソン

U30可茂ITインターンハッカソン

12月28,29日開催。2日間でアプリ開発の企画から完成までを目指す!U30可茂ITインターンハッカソンを開催します。

Read More