Unity で
Unit な Test を
書いてみた
2016.09.02 (Fri) / Unity 勉強会 #40
株式会社キッズスター CTO
森 哲哉
こんばんは!
"自己紹介が

アホみたいに
長い!"
でお馴染みの
もんりぃです!
ご多分に漏れず
今日も長いです!
今日は
UT
UNIQLO T-Shirt
じゃなくて
Unit Test
の、おはなしです。
おしながき
おしながき
• UnitTest の概要
• UnitTest の準備
• UnitTest の実行
• IntegrationTest について
• まとめ
さて、お待ちかねの
自己紹介
whoami
• 森 哲哉 と申します
• a.k.a: もんりぃ / T: @monry / F: monry84
• 31歳 / ♂ / O型 / 天 座 / 既婚
• 趣味は「お酒」と「合唱」です
whoami
• 大学を (自主的に) 卒業後、ベンチャーを転々
• Web のフロントエンド、サーバサイドが得意
• Unity 歴 3 年くらい
• Cocos2d-x も触ってます
• インフラ (AWS) も、ちょいちょいやってます
• 最近 Ruby on Rails に興味津々
jobs
• 株式会社キッズスター って会社で働いてます
• 未就学児∼小学生のお子さまをお持ちの

ファミリーをターゲットにした、知育/教育に

関わるアプリ・サービスを展開しております
• 「IID 世田谷ものづくり学校」という、

元中学校に入居しております
office
office
office
office
apps
なりきり!!
ごっこランド
パズル&テイルズ

おかしのくにを
つくるのじゃ!!
なりきり!!
アイスクリーム
屋さんごっこ
なりきり!!
ママごっこ
お弁当をつくろう!
おかしの家を
つくろう!
ハンバーガー
やさんごっこ
飛行機を
組み立てよう!
i18n i18n i18n
i18n
ゆかいな
お花屋さん
App Store / Google Play
カテゴリランキング1位
多数獲得!!!
きかんしゃ
トーマスと
パズルで
あそぼう!
キョロちゃん
大冒険
キョロちゃん
海の大冒険
ハローキティズ
ラボ
events
events
events
今度こそ、本題
UnitTest の概要
UnitTest - 概要
• 日本語で言うと「単体テスト」
• 「機能の挙動」テスト
• 「アプリの挙動」テスト
UnitTest - 概要
• 2013年末に AssetStore で公開
• Unity Technologies 謹製
• Unity 5.3 から標準組み込み
• 内部的には NUnit 利用
UnitTest - 概要
• Editor スクリプトとして記述
• using NUnit.Framework;
• [Test] 属性をメソッドに付与
• メソッド可視性は何でも OK っぽい
• namespace も利用可能
UnitTest - 概要
• GameObject (など) のライフサイクルイベント
は呼ばれない
• Awake とか Start は呼ばれない
• Coroutine も使えない
• 基本的に 1メソッド 1Assert が良さそう
UnitTest の準備
UnitTest - 準備
• インストール
• Unity 5.3 未満の人は AssetStore から
• Unity 5.3 以上の人は組み込み済
UnitTest - 準備
• テストスクリプト作成
• [ Menu ] > [ Assets ] > [ Create ] >

[ Editor Test C# Script ]
• Project ビューのコンテキストメニュー

からでも OK
UnitTest - 準備
UnitTest - 準備
• テストスクリプト実装
• 雛形が生成されているので、それに倣う
UnitTest - 準備
• Test Runner 起動
• 専用の Window が用意されている
• [ Menu ] > [ Window ] >

[ Editor Tests Runner ]
UnitTest - 準備
UnitTest の実行
UnitTest - 実行
テストケース一覧
全テスト実行
結果詳細
選択中のテストを実行
失敗したテストのみ実行
テストケースの

フィルタ
UnitTest - 実行
• 正しく準備出来ているテストケースが

Test Runner のテストケース一覧に列挙される
• ウィンドウ左上のボタン押下でテスト実行
UnitTest - 実行
• こんな感じ
UnitTest - 実行
• Fail したテストケースの詳細
UnitTest - 実行
DEMO
おまけ
おまけ - バッチモード
• コマンドラインからもテスト実行できます
• つまり Jenkins とかからも実行できます
• /Applications/Unity/Unity.app/Contents/MacOS/Unity 

-projectPath /path/to/project 

-runEditorTests
• 詳しくはコチラ
おまけ - Integration Test
• 結合試験とか統合試験とか呼ばれる
• 複数の機能の連携を検証する
• まだ標準組み込みにはなっていない
• MultiScene 絡みで難しいのかな?
• Roadmap にも載ってないんだよなぁ…。
• 詳しくはこちら
まとめ
まとめ
• UnitTestsRunner 登場以降、かなり楽に

テストを書けるようになった
• 共通クラスやゲームデータに関するモデルクラス

なんかを書く時は積極的にテスト書こう!
• IntegrationTest もそれなりにヨサソウ
Thank you for

your attention !!
Any Questions ?

Unity で Unit な Test を書いてみた