Upload
-
View
4.147
Download
0
Embed Size (px)
Citation preview
テキスト
Unityにおけるテストパターン束田 大介
Unityにおけるテスト
Unity Test Tools
Unity Technologiesから公開されているテストツール
2013年に公開されたが、実際の導入はまだ浸透してない
搭載されている機能Unit Test - メソッド単位での挙動の確認
Integration Test - アプリの挙動テスト
Unit Test
準備するもの
Unity Test Tool ( Asset Storeからインポート )
被単体用テストクラス
テスト用コード
Unity Test Tool
AssetStoreAssetStoreで最新のリリース版が配布されているので、ダウンロード後インポート
BitBucketUnity 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:\temp\results.xml
ご静聴ありがとうございました