Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Unity testtool

8,499 views

Published on

UnityTestToolを使用する時の単体テストパターンになります。

Published in: Engineering
  • Be the first to comment

Unity testtool

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

×