概要
統合テストを自動化するためにUnityTestRunnerのPlayModeをJenkinsで動かしたかったが、EditModeで動かす時は公式のドキュメントに書いてあるように、-runEditorTestsを指定すればよかったが、PlayModeに関しては乗っていなかった。
出来ないと思って諦めてたが、調べてみたら隠し引数があるみたいで色々やってたら出来たので備忘録として掲載した。
どっかに書いてあったらUnityさんごめんなさい
環境
- Unity2017 4.3f1 Personal
- Mac
やり方(Mac)
コマンドライン上で以下を叩く
/Applications/Unity2017/Unity.app/Contents/MacOS/Unity \
-batchmode \
-runTests \
-testFilter HogeTest \
-testPlatform playmode \
-projectPath ~/Unity/HogeProject/ \
-logfile ~/Unity/HogeProject/unitytest.log \
-
-runTests
Unityのドキュメントに乗ってなかった引数その1
この引数を指定してあげれば、Playmodeで動いてくれるらしい(もしかしたら、EditModeとPlayMode関係なくすべてのテストが実行されてるかもしれない -
-testFilter
Unityのドキュメントに乗ってなかった引数その2
-runTestsだと全てのテストが実行されてしまうので、指定したテストのみを実行させたい場合に使う。
テストスクリプトのクラス名を指定する。
複数実行したい時はカンマ区切りで指定する。 -
-testPlatform
Unityのドキュメントに乗ってなかった引数その3
実行時の環境を選択出来る。
※ちゃんと検証してないので、意味がないかも
とりあえずコマンドライン上でPlayModeのテストがなんとか動いてくれたので、UIのテストだったり、統合テストだったりの自動化が出来そう。