ログファイル
IL2CPP

Editor Test Runner

Editor Tests Runner は、NUnit ライブラリを実装したものです。NUnit ライブラリは、.Net 言語のユニットテストライブラリとしてよく知られています。NUnit に関する詳細は、http://www.nunit.org/ を参照してください。実装は、バージョン 2.6.4.に基づいています。

NUnit を始めるにあたって

NUnit を使用したことがない人は、初めに NUnit の Quick Start ガイドを参照してください。ここでは、C# ベースの金融アプリケーションを例に、NUnit を使用した開発プロセスが紹介されています。

Unity でテストを始めるには、まず、Editor Test Runner ウィンドウを開きます。プロジェクトに何もテストファイルがない場合は、サンプルテストを作るオプションがあります。また、メニュー (Assets > Create > Editor Test) からエディターテストファイルを作成することもできます。

Editor Tests Runner の使い方

Editor Test Runner は NUnit ライブラリを使用してテストを作成し、実行します。Editor Testは、Editor フォルダー内に置いてください (詳細は 特殊なフォルダー名 を参照)。 Runner はアセンブリ (プロジェクト内に含まれる外部アセンブリで、nunit.framework ライブラリを参照するものを含みます) をスキャンし、見つけたテストのリストを作成します。

Editor Tests Runner は IDE (MonoDevelop や Visual Studio など) のテスト実行機能を通してエディターと併用できるので、Unity API を呼び出すことができるいう利点があります。Unity API の中には、エディター外からアクセスできないものもあります(例えば、ゲームオブジェクトをインスタンス化する場合)。テストはエディター内で、「non-play」モードにし、一体化したフレームで実行されます。フレームをスキップする API を実行することはできません。

Test Runner で実行するコードは、現在開いているシーンに直接影響を与えます。例えばゲームオブジェクトをインスタンス化する場合、そのシーンを通して保持されます。たいていの場合、そのような挙動は望ましくありません。Test Runner には、Undo システムが組み込まれており、実行後に変更をアンドゥしようとします。それを行うには、Undo システムでアンドゥできる変更をすべて登録する必要があります。注意:変更をアンドゥすると、実行時間を余分に必要とすることがあります。オプションとして、新しいシーンでテストを実行することもできます。このオプションを選択すると、各テスト実行前に新しいシーンが開かれ、テストが実行されてから、元のシーンがあらためて開きます。このときシーンを保存するよう促されることがあります (Autosave シーンオプションが選択されていない場合)。

Editor Tests Runner ウィンドウの概要

 Image

  • Run All — すべてのテストを実行します。
  • Run Selected — 選択したテストを実行します。
  • Rerun Failed — 以前に失敗したテストを実行します。
  • Search — テスト名でテストリストを検索します。
  • Category filter — 利用できるカテゴリを表示し、テストカテゴリをフィルターにかけます。カテゴリが指定されているテストがある場合にのみ、表示されます。
  • Filter by test result — ある結果のテストを表示、非表示にします。ユーザーは、テスト結果 (成功、失敗、無視、未実行) を選択し、該当するテストを表示、非表示にできます。

テストリストの下に (環境設定によっては、横に) テスト結果のプレビューが表示されます。テストの処理時間、エラー、実行中に投げられた例外、ログを確認できます。

以下のオプションもウィンドウメニュー (ウィンドウの右上) で選択できます 。

  • Run on recompilation — 再コンパイルが成功したら、すべてのテストを自動的に実行します。
  • Run tests on a new scene — テストが実行される前に新しいシーンが開きます。元のシーンはテスト実行後に改めて開きます。
  • Autosave scene — テスト実行前にシーンを自動的に保存します (「Run tests on a new scene」選択時にのみ選択可能)。
  • Vertical/Horizontal layout — 好みのウィンドウレイアウトを選択できます。

バッチモードでの実行

Editor Testをヘッドレスモード (コマンドライン使用) で実行することが可能です。そのためには、Unity を以下の引数で実行してください。

  • runEditorTests — Editor Testを実行します。この引数は必須です。
  • editorTestsResultFile — 結果ファイルの置き場所のパスです。パスがフォルダーを表している場合は、デフォルトファイル名が使用されます。指定がない場合は、結果はプロジェクトのルートフォルダーに置かれます。
  • editorTestsFilter — テストを名前でフィルターにかけます。複数回使用できます。
  • editorTestsCategories — カテゴリーでテストをフィルターにかけます。複数回使用できます。
  • editorTestsVerboseLog — より多くログに書き込みます。TeamCity 向けの形式で出力するには「-editorTestsVerboseLog teamcity」を使用します。

プロジェクトを指定して、すべてのエディターテストを実行する。

>Unity.exe 
-projectPath PATH_TO_YOUR_PROJECT 
-runEditorTests 

名前に「Player」を含むプロジェクトからすべてのエディターテストを実行し、結果ファイルを C:\temp\results.xml に置く場合

>Unity.exe -runEditorTests 
-projectPath PATH_TO_YOUR_PROJECT 
-editorTestsResultFile C:\temp\results.xml
-editorTestsFilter Player

エディターは次のコードで結果を返し、終了します。

  • 0 — 正常終了。エラーなし。
  • 2 — 異常終了。一部のテスト失敗。
  • 3 — 実行失敗 (その他のエラー)。
ヒント

Windows では、実行結果を見る代わりに、以下を実行してください。

start /WAIT Unity.exe ARGUMENT_LIST

これによって、コマンドの実行が終了するのを遅らせ、ERRORLEVEL 変数からのリターンコードを読むことができます。

ログファイル
IL2CPP