3
0

More than 3 years have passed since last update.

UnityとGithubActionsを使って自動テストをセットアップする手順の備忘録

Posted at

概要

  • GithubActionsでUnityTestRunnner実行と結果を出力するまでの手順をまとめました
  • 作業した手順の備忘録です
  • 細かい説明は記事の最下部にある参考リンクを参照してください

環境

  • Windows10 Home
  • Unity 2018.4.19f1

事前準備

ALF作成

  • GitHubでALF作成用プライベートリポジトリ作成
  • .github/workflowsフォルダ以下にCreateLicenseALF.yamlを作成
  • 内容は以下
CreateLicenseALF.yaml

name: Create ALF File

on: push

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        unity-version: [2018.4.19f1]

    container: docker://gableroux/unity3d:${{ matrix.unity-version }}

    steps:
    - run: mkdir artifact
    # 1.Unityを起動してALFファルを作成
    - run: /opt/Unity/Editor/Unity -quit -batchmode -nographics -logfile -createManualActivationFile || exit 0
    - run: cp "Unity_v${{ matrix.unity-version }}.alf" artifact
    # 出力
    - uses: actions/upload-artifact@v2
      with:
        name: ${{ matrix.unity-version }}
        path: artifact
  • 少し待つとALF作成用リポジトリのActionsタブに実行結果が表示される
  • 正常に完了するとArtifactsに作成されたALFファイルが表示されるのでダウンロード
  • zipファイルになっています

ULFファイルの取得

  • 以下を開く
  • 先ほどダウンロードしたzipを解凍してALFファイルをアップロード
  • いくつかの質問に答えたらULFファイルがダウンロード出来るようになるのでULFファイルを保存
  • 以降ALF作成用プライベートリポジトリは、使用しません(何かをプッシュするたびALFファイルが作成されてしまうため)

テストを行うUnityプロジェクトの作成とリポジトリの作成(必要な場合)

  • テストを行う用のUnityプロジェクトを新規作成します
  • UnityプロジェクトにPlayModeとEditModeのテストコードを追加
  • テストを行う用のリポジトリを新規作成します

ULFファイルをSecretsに設定する

  • 以降はテストを行う用のUnityプロジェクト・リポジトリに移動して作業を行います。
  • テストを行う用リポジトリの Settings > Secrets を開く
  • ページ右上のNew repository secretを押す
  • Nameに「UNITY_LICENSE」を入れ、先ほどのULFファイルの中身をまるっとValueにコピペします
  • Add secret を押下で設定完了です

テストを行う用のリポジトリにテスト用yaml追加

  • .github/workflowsフォルダ以下にUnityTest.yamlを作成
  • 内容は以下
UnityTest.yaml
name: UnityTest

on: push

env:
  UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
  PROJECT_ROOT: .

jobs:
  testAllModes:
    name: Test in ${{ matrix.testMode }} on version ${{ matrix.unityVersion }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        unityVersion:
          - 2018.4.19f1
        testMode:
          - playmode
          - editmode
    steps:
      - uses: actions/checkout@v1
        with:
          lfs: true

      - uses: actions/cache@v1.1.0
        with:
          path: ${{ env.PROJECT_ROOT }}/Library
          key: Library-${{ env.PROJECT_ROOT }}

      - uses: webbertakken/unity-test-runner@v1.4
        id: tests
        with:
          projectPath: ${{ env.PROJECT_ROOT }}
          unityVersion: ${{ matrix.unityVersion }}
          testMode: ${{ matrix.testMode }}
          artifactsPath: ${{ matrix.testMode }}-artifacts

      - uses: actions/upload-artifact@v1
        with:
          name: Test results for ${{ matrix.testMode }}
          path: ${{ steps.tests.outputs.artifactsPath }}
  • 少し待つとテストを行う用のリポジトリ内Actionsタブに実行結果が表示される
  • 正常に完了するとArtifactsにテスト結果が表示されます
  • 以下の2ファイルが表示されていれば成功です
    • Test results for editmode
    • Test results for playmode
  • zipファイルになっています
  • 解凍すると中にテスト結果がxmlに書き出されています
    • editmode-results.xml
    • playmode-results.xml

参考リンク

3
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
3
0