Unityのテスト環境をUnity5.6に合わせてみる

【 2017/04/04 12:07 】by 月琴かりん

Unityのテスト環境をUnity5.6に合わせてみる

標準のTestRunnnerのPlayMode対応で楽になった

  • ネットワーク周りとか、アニメーション周りのテストに難儀していたが、標準のTestRunnerが対応したので、普通に(?)テストが書ける。

TestRunnnerの場所が変わった

  • 変わったというか、前はAssetStoreから入れていたのが標準で添付するようになったので、.appに同梱される配置に。

具体的には

/Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/TestRunner/

DLLのデバッグ

  • UnityEngineに依存しないなら、MonoDevelop側のTestを使う方が早いし楽、、かもしれない。
  • MonoDevelopを使ったNUnitの書き方はこのへんを
    • http://quwahara.hatenablog.com/entry/2012/08/05/120058
    • このとき、新規にDLLに対してプロジェクトを作ると、Unity系へのDLL参照が当然だが全くセットアップされておらず、何かと参照エラーで死ぬ。(NUnit.Frameworkもな!)
    • NUnitは前述のTestRunnerディレクトリ以下にDLLがあるが、その他もろもろ、Unityから吐かれるプロジェクトのslnを見るとパスが大体わかる。自力で調べるよりそっち見たほうが早い。
      • DLLの参照設定については、VSと違ってプロジェクトのプロパティではなく、参照ディレクトリのコンテクストから参照設定画面を出して設定するので注意。

NUnitのコマンドラインからの実行

  • nunit-console コマンドを使う。オプションは-helpで見た方が調べるより早い。
    • http://qiita.com/FGtatsuro/items/1aeab6d32ca10997b1db
NUNIT_CONSOLE = /Applications/Unity/MonoDevelop.app/Contents/Frameworks/Mono.framework/Versions/Current/bin/nunit-console4
  • 手順としては、Testを含んだDLLをビルド => nunit-consoleに喰わせる。

すると

NUnit version 2.4.8
Copyright (C) 2002-2007 Charlie Poole.
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
Copyright (C) 2000-2002 Philip Craig.
All Rights Reserved.

Runtime Environment -
OS Version: Unix 15.6.0.0
CLR Version: 4.0.30319.17020 ( 4.0.5 ((detached/1d8d582 Tue Oct 20 15:15:33 EDT 2015) )

.
Tests run: 1, Failures: 0, Not run: 0, Time: 0.023 seconds

とか出力される。

ただこれだと、細かい結果がわからないので、

${NUNIT_CONSOLE} -xmlconsole 

として、XMLを吐くと、集計前の生データがみれる。

Jenkinsとかでやる場合にはさらに

-nologo

オプション使って、リダイレクトでxmlをファイルに書いてやるといいだろう。

-run=(namespace).(class).(method)

runオプションを使うことで、テスト対象を限定できる。

そうそう、ビルドは下記コマンドで行う。

XBUILD = /Applications/Unity/MonoDevelop.app/Contents/Frameworks/Mono.framework/Versions/Current/bin/xbuild
${xbuild} /p:Configuration=Debug|Release (Proj.sln)

xbuildはオプションがスラッシュなのに、nunit-consoleはハイフンなの、キモいよね。。

Link Infomation

alomarron

サイト内検索