Version: 2019.1
ログファイル
Unity Test Runner でのテストの作成と実行

Unity Test Runner

Unity Test Runner は、Edit (編集) モードと Play (再生) モードでコードをテストするツールです。また、スタンドアロン、Android、iOS などのターゲットプラットフォーム上でも同様にテストできます。

Unity Test Runner にアクセスするには、Window > General > Test Runner の順に選択します。

Unity Test Runner は NUnit ライブラリの Unity インテグレーションを使用します。NUnit ライブラリは .Net 言語用のオープンソースのユニットテストライブラリです。NUnit の詳細は、NUnit の公式ウェブサイトGitHub の NUnit ドキュメント を参照してください。

UnityTestAttribute は、Unity Test Runner の標準の NUnit ライブラリへの主要な追加機能です。これは、テスト内からフレームをスキップできるタイプの単体テストです (これにより、バックグラウンドタスクを完了できます)。

  • Play モード: UnityTestAttributeコルーチン として実行します。

  • Edit モード: UnityTestAttributeEditorApplication.update コールバックループで実行します。

既知の問題と制限

Unity Test Runner には、いくつかの既知の問題と制限があります。

  • WebGL と WSA プラットフォームは UnityTestAttribute をサポートしません。

  • UnityTestパラメーター化されたテスト をサポートしません (ValueSource を除きます)。

Unity Test Runner の使い方

このページは、単体テストと NUnit についてすでに理解していることを前提としています。NUnit を初めて使用する場合、または詳細情報が必要な場合は、GitHub の NUnit ドキュメント を参照してください。

Unity Test Runner を開くには、Unity を開き、Window > General > Test Runner の順に移動します。プロジェクトにテストがない場合は、Create Test Script in current folder ボタンをクリックして、基本的なテストスクリプトを作成します。テストスクリプトを加えるとコンパイルエラーが発生する場合は、このボタンはグレー表示されます。テストスクリプトを加えるための条件は、Editor フォルダー、またはテストアセンブリ (NUnit、Unity Test Runner、ユーザースクリプトアセンブリ) を参照する Assembly Definition (アセンブリ定義) ファイルを使用するフォルダーにあります。

Assets > Create > C# Test Script の順に移動して、テストスクリプトを作成することもできます。テストスクリプトを加えるとコンパイルエラーが発生する場合は、このオプションは無効になっています。

ノート: 通常のビルドパイプラインを使用する場合、テストアセンブリ (NUnit、Unity TestRunner、ユーザースクリプトアセンブリ) は含まれませんが、Test Runner ウィンドウで “Run on <Platform>” を使用する場合は含まれます。

Edit モードでのテスト

Edit モードでは、Unity は Test Runner ウィンドウからテストを実行します。

Edit モードのテストスクリプトは、スクリプトを配置するファイルの場所によって定義されます。有効な場所は以下の通りです。

  • プロジェクトの Editor フォルダー

  • エディターのみのテストアセンブリを参照する Assembly Definition (アセンブリ定義) ファイル

  • プロジェクトの Editor フォルダーにある事前コンパイルされたアセンブリ

EditMode ボタンをクリックしてから、Create Test Script in current folder (現際のフォルダーでテストスクリプトを作成) をクリックして、基本的なテストスクリプトを作成します。必要に応じて、これを任意のスクリプト編集ソフトウェアで開いて編集します。

ノート: Edit モードで実行している場合は、EditorApplication.update コールバックループで UnityTestAttribute を実行します。

Play モードでのテスト

アセンブリ定義ファイルが含まれるフォルダーに Play モードのテストスクリプトを配置する必要があります。アセンブリ定義ファイルは、テストアセンブリ (Nunit と Unity TestRunner) を参照する必要があります。事前に定義された Unity アセンブリ (Assembly-CSharp.dll など) は、定義されたアセンブリを参照しません。このアセンブリ定義ファイルは、さらにテストするアセンブリを参照する必要もあります。つまり、他のアセンブリ定義ファイルで定義されたコードのみをテストすることが可能です。

Unity では通常のプレイヤービルドにテストアセンブリは含まれません。Test Runner を実行する場合のみ、含まれます。事前に定義したアセンブリでコードをテストする必要がある場合は、すべてのアセンブリからテストアセンブリを参照できます。 ただし、後でこれらのテストを手動で削除して、Unity がそれらを最終的なプレイヤービルドに加えないようにする必要があります。

手順は以下のとおりです。

  1. プロジェクトを保存します。

  2. Window > General > Test Runner の順に選択します。

  3. ウィンドウの右上にある小さなドロップダウンをクリックします。

  4. Enable playmode tests for all assemblies (すべてのアセンブリの再生モードのテストを有効にする) をクリックします。

  5. 表示されたダイアログボックスで、OK をクリックしエディターを手動で再起動 します。

ノート: すべてのアセンブリの PlayMode のテストを有効にすると、プロジェクトのビルドに追加のアセンブリが加えられ、プロジェクトのサイズとビルド時間が増加する場合があります。

PlayMode テストスクリプトを作成するには、Test Runner ウィンドウで [PlayMode] を選択し、Create Test Script in current folder (現在のフォルダーにテストスクリプトを作成) をクリックします。 スクリプトを追加するとコンパイルエラーが発生する場合は、このボタンはグレー表示されます。

ノート: Play モードで実行する場合は、UnityTestAttributeコルーチン として実行します。


ログファイル
Unity Test Runner でのテストの作成と実行