テキスト
Unityにおけるテストパターン
束田 大介
Unityにおけるテスト
Unity Test Tools
Unity Technologiesから
公開されているテスト
ツール
2013年に公開された
が、実際の導入はまだ
浸透してない
搭載されている機能
Unit Test - メソッド単位での挙動の確認
Integration Test - アプリの挙動テスト
Unit Test
準備するもの
Unity Test Tool ( Asset Storeからインポート )
被単体用テストクラス
テスト用コード
Unity Test Tool
AssetStore
AssetStoreで最新のリリース版が配布されているの
で、ダウンロード後インポート
BitBucket
Unity Technologiesからリポジトリが公開されていま
すので、ここから最新版を取得してもよい
被単体テスト用クラス
被単体用テストクラス
実装されているのは、初
期化用の構造体とbool、
intの返り値をもったメ
ソッドLessThanXと
XPlusY。
それぞれのメソッドを、
2つのケースでテストし
ます
テスト用コード
準備
テスト用コードの配置場所
UnityEditorとして機能させるので、必ずEditorフォル
ダに入れておく
Editorとして扱うが、namespaceのUnityEditorの宣言
は不要
属性付与
テスト用コードには、クラス、各メソッドに属性を
付与します
引数に付与する属性もあります
属性付与
[Test]
テスト用メソッドであることを示します。
[TestCase]
InitializeTestでテストする値を渡します。テストケースの数だけ属性
を記述します。
[Values]
引数に与える値を並べて指定することができます。
[Range]
引数に与える値を範囲と条件を指定することができます。
テスト用コード
被テスト用クラスと同
じだけのテスト用メソッ
ドを準備します
引数の値に応じてテス
トを行うよう設定する
テスト用コード
テスト用コード
InitializeTestメソッドに、整数1と2を渡した場合と、−1と
−100を渡した場合にエラーがないかのテストになります
仮にTestClassのx,yがfloatだった場合、エラーが返ってきま
す
テスト用コード
こちらのテストメソッドは、それぞれの引数に、Valuesにセット
した値を渡し、すべての条件分のテストを行います
テストないの条件値、TestClassを呼び出した結果にエラーがなけ
ればこのテストはOKといった結果になります(
Assert.AreEqual(xLess, testClass.LessThanX(a)); )
テスト用コード
この場合は少々複雑で、1∼10のレンジで2つおきの値を引数とし
た条件と、1∼2のレンジでカウントした値のすべての条件でテスト
を行います
xとyにそれぞれ値が入っていて計算ができ、かつtestClass.XPlusYTest
から値が返ってきているかの条件を満たした場合OKとします
実行方法
事例としてはJenkinsから、Unityのバッチモードで実
行させる事を想定していました
定期的、もしくはリポジトリにコミットがあった場
合にバッチモードでテストを実行を想定
今回は基本的な実行方法をご紹介します
実行方法
Unity5でのウインドウになってし
まっていますが、RunAllを押すと、
すべてのテストが開始されます
UnityTestでエラーが出ていますが割
愛します
MyTestの結果を見るとすべての値が
成功していますが、かかった時間も
ウインドウ下部に表示されています
実行方法
テスト結果に関しては、Xmlにて出力することも可能
以下のコードはWindows用ですが、アプリケーションの
指定、保存先のファイルパスを変更する形で実行可能
Jenkinsで呼び出すことも可能
>Unity.exe -batchmode
-projectPath PATH_TO_YOUR_PROJECT
-executeMethod UnityTest.Batch.RunUnitTests
-resultFilePath=C:tempresults.xml
ご静聴ありがとうございました

Unity testtool