【Unity】Unity Test Runnerを使ってみる(EditMode編)
目次
手順
1. Unity Test RunnerのWindowを表示させる
以下の手順でWindowを表示させます。1
Window -> General -> Test Runner
/手順1.png “手順1”)
2. Test用のファイルを生成する
Test Runner Windowから自動でテストに必要なファイルを生成します。
下の画像のように、一番上のタブのEditMode
を選択(白くなります)して、中段にあるCreate EditMode Test Assembly Folder
を押下してファイルを生成します。
/手順2.png “手順2”)
Assetsフォルダにフォルダ
が生成されます。このときにつける名前はデフォルトで、Tests
ですが、名前は変更しても構いません。
Tests
でフォルダを生成すると、Tests.asmdef
というファイルが生成されます。(フォルダ名.asmdef)
.asmdefファイルとはなにか
3. テスト用スクリプトファイルの作成
Editorフォルダを作成し、その中でC# Test Script
を作成します。
1 |
|
4. コードを記述する準備
EditModeでは、UnityTest属性(コルーチン)
は使用できないので、テストはTest属性
を使用してテストを記述します。
生成すると以下のようなコードになっていると思います。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28using System.Collections;
using System.Collections.Generic;
using NUnit.Framework;
using UnityEngine;
using UnityEngine.TestTools;
namespace Tests
{
public class test
{
// A Test behaves as an ordinary method
[Test]
public void testSimplePasses()
{
// Use the Assert class to test conditions
}
// A UnityTest behaves like a coroutine in Play Mode. In Edit Mode you can use
// `yield return null;` to skip a frame.
[UnityTest]
public IEnumerator testWithEnumeratorPasses()
{
// Use the Assert class to test conditions.
// Use yield to skip a frame.
yield return null;
}
}
}
初期手順として、以下のようなことをしておくと、スムーズにテストを記述できるようになると思います。
- EditModeでは使えない
UnityTest属性
を使用しているtestWithEnumeratorPasses()
を消去します。 UnityAssert
を使用できるように、using
を追加します。- 不要なコメントを消す
1 |
|
5. テストを記述して実行する
今回は、テストのために、1+1が2になるかという簡単なテストを書いてみます。
以下のテストは、成功するテストです。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18using System.Collections;
using System.Collections.Generic;
using NUnit.Framework;
using UnityEngine;
using UnityEngine.TestTools;
using Assert = UnityEngine.Assertions.Assert;
namespace Tests
{
public class test
{
[Test]
public void AddTest()
{
Assert.AreEqual(2,1+1);
}
}
}
Unityの画面に戻り、Test Runnerウィンドウ
中断のRunAll
を押下するとテストが実行されます。
/手順5_1.png “手順5_1”)
矢印のトグルボタンを押して深く潜っていくと定義したAddTestクラス
があると思います。この部分をクリックすると詳細が表示されます。詳細情報はテストが失敗したときに役に立ちます。
以下の画像が先程のテストコードを失敗するように変更してテストした結果です。
1 |
|
Expected 2 == 0
となっています。この右側が成功した場合の値です。左側が計算した結果です。
/手順5_2.png “手順5_2”)
【Unity】Unity Test Runnerを使ってみる(EditMode編)
https://daiki-iijima.github.io/2021/06/15/【Unity】Unity-Test-Runnerを使ってみる(EditMode編)/