[Unity Test Tools] Unity Test Toolsのセットアップ

ヨメレバCSS
オリジナルCSS

Unityで実行するテストを書くときに欠かせない、Unity Test Toolsについてまとめたことを書いていきます。

Unity Test Toolsとは

Unty Technologiesが出している、Unit Test / Integration Testを行うことができるようになるアセットです。

Unity Test Tools (Asset Store)

Unity Test Tools (公式サイト)

ドキュメント

テストの種類はEditro上で通常のUnit Testを行うものと、Sceneを実行して行うIntegration Testの二種類があります。

Integration TestはScene上のオブジェクトやCoroutineなど、Editorの動きだけではできないテストを行うことができます。

インストール

インストールはAsset Storeから行います。

「Window→Asset Store」よりAsset Storeを開いて、「UnityTestTools」を検索。

TestTools_1_1_store

「ダウンロード」をクリックして、このAssetをダウンロードします。

完了すると次のようなダイアログが開きます。

UnityTestTools_1_2_import

ここでImportするファイルを決めるので、「Examples」のチェックを外して「Import」とします。

Examplesにはテストのサンプルが入っているのですが、普通にプロジェクトで使うぶんには必要ありません。

このアセットはプロジェクトに直接取り込むため、余計な物は避けておきます。

インポートすると、ProjectにUnityTestToolsが追加されています。UnityTestTools_1_3_project

テストの実行

これを使って、まずは簡単なユニットテストを書いてみます。

Sample.csを作成して、

UnityTestTools_1_4_sample

内容をこう。

using UnityEngine;
using System.Collections;

public class Sample {

	public int sampleFunction() {
		return 0;
	}

}

ここで、Unit Testの対象にするクラスはMonoBehaviourを継承しないものとすることに注意してください。

継承したクラスをテストしたい場合は、Integration Testのほうを使います。

そしてこのクラスをテストするためのSampleTestクラスを作成します。

これはEditorフォルダを作り、その下に作成します。

using UnityEngine;
using System.Collections;
using NUnit.Framework;

[TestFixture]
public class SampleTest {

	[Test]
	public void sampleFunctionTest()
	{
		// sampleFunctionのテスト
		Sample s = new Sample();
		Assert.AreEqual (0, s.sampleFunction ());
	}
}

そして最後に、Unityのメニューにある「Unity Test Tools→Unit Test Runner」を開くと、次のような画面が出ます。

UnityTestTools_1_5_window

このウィンドウでテストを実行するので、どこかにくっつけておくといいです。

SampleTestクラスで[TestFixture]属性をつけたクラスが表示され、[Test]属性をつけたファンクションが実行されるテストとして表示されています。

これを、上の「Run All」で実行してみますと、こんな感じに。

UnityTestTools_1_1_window2

テストとして記述してある、

Assert.AreEqual (0, s.sampleFunction ());

が正しかったため、緑のチェックがつきました。

AreEqualは引数ふたつが同じ場合に正とします。

わざと間違えてみます。この判定を

Assert.AreEqual (1, s.sampleFunction ());

に変えて実行してみると、

UnityTestTools_1_1_window3

というように失敗します。

こういった、テストケースの記述を増やしてコードの信頼度を固めていくために、ユニットテストを使っていきます。

参考

Unity Test Tools (Asset Store)

Unity Test Tools (公式サイト)

ドキュメント

NUnit 2.6.2

(UnitTestはNUnitで動いているので、こちらのドキュメントが参考になります。バージョンはdllで確認。1.8.5に同梱されていたものは2.6.2でした)

スポンサーリンク
GoogleAdSence レクタングル(大)

シェアする

スポンサーリンク
GoogleAdSence レクタングル(大)