我在谷歌上搜索过,没有其他人有这个问题,所以也许只有我一个人。
我设置了一个带有游戏模式单元测试套件的统一测试运行程序。
但是,如果我尝试运行带有安装程序或Teardown的测试,测试将完全不运行(当然,在单击run之后)。我只是得到了一个灰色的圆圈,没有圆木。从字面上说它不运行。
如果我删除属性并手动调用这些方法,一切都会正常工作。
您是否有任何建议,为什么设置/Teardown属性会导致这种奇怪的行为?
下面是一些可以工作并通过/运行测试的示例代码:
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上的绿色复选标记显示测试已经运行,但是套件中的任何实际测试都没有通过或失败:

发布于 2019-02-01 21:43:43
他们需要公开,错误只是不清楚。
发布于 2022-05-22 23:31:46
我的问题是,当使用[UnityTest]时,拆卸必须具有以下内容:
[UnityTeardown]publicIEnumerator[UnityTearDown]
public IEnumerator Teardown()
{
service.Dispose();
yield return null;
}https://stackoverflow.com/questions/53164381
复制相似问题