Unity Test Runner は、Edit (編集) モードと Play (再生) モードでコードをテストするツールです。また、スタンドアロン、Android、iOS などのターゲットプラットフォーム上でも同様にテストできます。
To access the Unity Test Runner, go to Window > Test Runner.
Unity Test Runner は NUnit ライブラリの Unity インテグレーションを使用します。NUnit ライブラリは .Net 言語用のオープンソースのユニットテストライブラリです。NUnit の詳細は、NUnit の公式ウェブサイト と GitHub の NUnit ドキュメント を参照してください。
UnityTestAttribute は、Unity Test Runner の標準の NUnit ライブラリへの主要な追加機能です。これは、テスト内からフレームをスキップできるタイプの単体テストです (これにより、バックグラウンドタスクを完了できます)。
Play モード: UnityTestAttribute
を コルーチン として実行します。
Edit モード: UnityTestAttribute
を EditorApplication.update コールバックループで実行します。
Unity Test Runner には、いくつかの既知の問題と制限があります。
WebGL と WSA プラットフォームは UnityTestAttribute
をサポートしません。
UnityTest
は パラメーター化されたテスト をサポートしません (ValueSource
を除きます)。
このページは、単体テストと NUnit についてすでに理解していることを前提としています。NUnit を初めて使用する場合、または詳細情報が必要な場合は、GitHub の NUnit ドキュメント を参照してください。
To open the Unity Test Runner, open Unity and go to Window > Test Runner. If there are no tests in your Project, click the Create Test Script in current folder button to create a basic test script. This button is greyed out if adding a test script would result in a compilation error. The conditions for adding a test script are in the Editor folder, or any folders using Assembly Definition files that reference test assemblies (NUnit, Unity Test Runner, and user script assemblies).
Assets > Create > C# Test Script の順に移動して、テストスクリプトを作成することもできます。テストスクリプトを加えるとコンパイルエラーが発生する場合は、このオプションは無効になっています。
ノート: 通常のビルドパイプラインを使用する場合、テストアセンブリ (NUnit、Unity TestRunner、ユーザースクリプトアセンブリ) は含まれませんが、Test Runner ウィンドウで “Run on <Platform>” を使用する場合は含まれます。
Edit モードでは、Unity は Test Runner ウィンドウからテストを実行します。
Edit モードのテストスクリプトは、スクリプトを配置するファイルの場所によって定義されます。有効な場所は以下の通りです。
プロジェクトの Editor フォルダー
エディターのみのテストアセンブリを参照する Assembly Definition (アセンブリ定義) ファイル
プロジェクトの Editor フォルダーにある事前コンパイルされたアセンブリ
EditMode ボタンをクリックしてから、Create Test Script in current folder (現際のフォルダーでテストスクリプトを作成) をクリックして、基本的なテストスクリプトを作成します。必要に応じて、これを任意のスクリプト編集ソフトウェアで開いて編集します。
ノート: Edit モードで実行している場合は、EditorApplication.update コールバックループで UnityTestAttribute を実行します。
アセンブリ定義ファイルが含まれるフォルダーに Play モードのテストスクリプトを配置する必要があります。アセンブリ定義ファイルは、テストアセンブリ (Nunit と Unity TestRunner) を参照する必要があります。事前に定義された Unity アセンブリ (Assembly-CSharp.dll など) は、定義されたアセンブリを参照しません。このアセンブリ定義ファイルは、さらにテストするアセンブリを参照する必要もあります。つまり、他のアセンブリ定義ファイルで定義されたコードのみをテストすることが可能です。
Unity では通常のプレイヤービルドにテストアセンブリは含まれません。Test Runner を実行する場合のみ、含まれます。事前に定義したアセンブリでコードをテストする必要がある場合は、すべてのアセンブリからテストアセンブリを参照できます。 ただし、後でこれらのテストを手動で削除して、Unity がそれらを最終的なプレイヤービルドに加えないようにする必要があります。
手順は以下のとおりです。
プロジェクトを保存します。
Go to Window > Test Runner.
ウィンドウの右上にある小さなドロップダウンをクリックします。
Enable playmode tests for all assemblies (すべてのアセンブリの再生モードのテストを有効にする) をクリックします。
表示されたダイアログボックスで、OK をクリックしエディターを手動で再起動 します。
ノート: すべてのアセンブリの PlayMode のテストを有効にすると、プロジェクトのビルドに追加のアセンブリが加えられ、プロジェクトのサイズとビルド時間が増加する場合があります。
PlayMode テストスクリプトを作成するには、Test Runner ウィンドウで [PlayMode] を選択し、Create Test Script in current folder (現在のフォルダーにテストスクリプトを作成) をクリックします。 スクリプトを追加するとコンパイルエラーが発生する場合は、このボタンはグレー表示されます。
ノート: Play モードで実行する場合は、UnityTestAttribute を コルーチン として実行します。