我在google上搜索过,没有发现其他人有这个问题,所以可能只有我一个人。
我用Playmode单元测试套件设置了一个Unity测试运行器。
但是,如果我尝试运行在套装中有[Setup]或[Teardown]的测试,这些测试根本不会运行(当然,在单击run之后)。我只是得到一个灰色的圆圈,没有日志。它真的不跑了。
如果我删除属性并手动调用方法,一切都会正常。
下面是一些示例代码,这些代码可以工作并通过/运行测试:
public class PlayModeUnitTests
{
Game game;
void Setup()
{
GameObject gameGameObject = MonoBehaviour.Instantiate(Resources.Load<GameObject>("Prefabs/Game"));
game = gameGameObject.GetComponent<Game>();
}
void Teardown()
{
Object.Destroy(game.gameObject);
}
[UnityTest]
public IEnumerator MoveDown()
{
Setup();
GameObject obj = game.SpawnObj();
float initialYPos = obj.transform.position.y;
yield return new WaitForSeconds(0.1f);
Assert.Less(obj.transform.position.y, initialYPos);
}
}
public class PlayModeUnitTests
{
Game game;
[SetUp]
void Setup()
{
GameObject gameGameObject = MonoBehaviour.Instantiate(Resources.Load<GameObject>("Prefabs/Game"));
game = gameGameObject.GetComponent<Game>();
}
[TearDown]
void Teardown()
{
Object.Destroy(game.gameObject);
}
[UnityTest]
public IEnumerator MoveDown()
{
GameObject obj = game.SpawnObj();
float initialYPos = obj.transform.position.y;
yield return new WaitForSeconds(0.1f);
Assert.Less(obj.transform.position.y, initialYPos);
}
}
如您所见,.dll上的绿色复选标记显示测试已运行,但套件中的所有实际测试均未通过或失败: