GitHub Actionsでユニットテストを自動実行する 〜Jest編〜

今回はGitHub Actionsにてユニットテスト(Jest)を実行させるように設定します。

ただそれだけです。

この記事でできること
  • GitHub ActionsでNode.jsの環境を構築する
  • GitHub Actionsでユニットテスト(Jest)を実行する
目次

対象環境

Jestのセットアップが完了し、Jestが実行可能なプロジェクトを対象としています。

本記事においては以下の記事で作成した環境を利用します。
Jestのセットアップが完了していない方はご参考にどうぞ。

ワークフローの設定

設定ファイルの作成

テストを動かすために最低限やることとしては、以下のステップになるかと思います。

  1. OS環境を構築する
  2. Node.js実行環境を構築する
  3. リポジトリからソースコードを取得する
  4. npmパッケージをインストールする
  5. テストを実行する

これをワークフロー設定ファイルで表現していきます。

name: Testing

on:
  # ここではプルリクエスト作成時に動作するよう設定
  pull_request:
    branches: [ "master" ]

  # 動作確認しやすいように手動実行を可能に
  workflow_dispatch:

jobs:
  unit-testing:
    # 【① OS環境構築】、Node.jsはデフォルトで使用できるので【② Node.js環境構築】もここで完了
    runs-on: ubuntu-latest

    steps:
      # ③ リポジトリからソースコードを取得
      - uses: actions/checkout@v3
      
      # ④ npmパッケージのインストール
      - name: npm install root
        run: npm i
      - name: npm install next
        run: |
          cd next
          npm i

      # ⑤ テストの実行
      - name: run test
        run: npm run test

実行コマンドやディレクトリ構造などは各々のプロジェクトで適切なものに置き換えてください。

動作確認

ワークフローを動かすと無事にテストが実行されます。

Node.js実行環境とバージョン

先ほどの設定ファイルで示したように、Node.jsについては特になにかしなくてもデフォルトで使えるようです。

デフォルトバージョンの確認

2022年6月現在のOSバージョンとNode.jsバージョンのセットを確認してみました。

以下のようにバージョン確認コマンドを実行するワークフローを作成して、

name: NODE_VERSION

on:

  workflow_dispatch:

jobs:
  ubuntu:
    runs-on: ubuntu-latest

    steps:
      - name: os version
        run: lsb_release -a
      - name: node -v
        run: node -v

  windows:
    runs-on: windows-latest

    steps:
      - name: os version
        run: systeminfo
      - name: node -v
        run: node -v

  mac:
    runs-on: macos-latest

    steps:
      - name: os version
        run: sw_vers
      - name: node -v
        run: node -v

実行すると以下のような結果が得られました。
各OSでNode.jsがデフォルトでインストールされていることがわかります。

バージョン指定

Node.jsのバージョンを指定したい場合はsetup-nodeというアクションが使用できます。

以下のように設定することでバージョン指定が可能です。

name: NODE_VERSION

on:

  workflow_dispatch:

jobs:
  ubuntu:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/setup-node@v3
        with:
          node-version: 14
      - name: node -v
        run: node -v

実行してみると指定したバージョン(v14)となっていることが確認できます。

参考リンク

最後に

GitHub Actionsといっても要は仮想環境上で任意の処理を実行するだけ。

setup-nodeのような便利なアクションも多数ありますのでとても簡単ですね!

よかったらシェアしてね!
  • URLをコピーしました!
目次