如果脚本中记录了错误,则 PlayMode 测试默认停止
Posted
技术标签:
【中文标题】如果脚本中记录了错误,则 PlayMode 测试默认停止【英文标题】:PlayMode tests stopping by default if errors are logged in scripts 【发布时间】:2018-03-29 16:05:02 【问题描述】:根据经验,如果脚本调用 Debug.LogError
时以编程方式创建任何错误日志,我可以看到 Unity 停止运行 PlayMode 测试。
这对我来说是个问题,因为我希望 PlayMode 测试仅在断言失败时停止。
如果记录了错误,有什么方法可以告诉 Unity 不要停止当前的 PlayMode 测试?
【问题讨论】:
【参考方案1】:在控制台选项卡上禁用错误暂停。这应该可以防止 Debug.LogError
暂停您的游戏。
如果此测试未在编辑器中完成,则它将失败。为防止这种情况,请在 Debug.LogError
之后立即调用 LogAssert.Expect
,以防止 Unity 在调用 Debug.LogError
时停止或测试失败。
Debug.LogError("Your Error");
LogAssert.Expect(LogType.Error, "Your Error");
编辑:
在 Unity 2017 及更高版本中,您现在可以使用 LogAssert.ignoreFailingMessages
将其设置为 true 来完成此操作。对于旧版 Unity,您仍然可以使用上述答案。
LogAssert.ignoreFailingMessages = true;
【讨论】:
期待它有效,但这是唯一的方法吗?没有全局方法告诉 Unity 期待所有错误日志? 是的。根据doc,Thar 是唯一的方法 您可以轻松地为此编写一个包装器或函数,同时调用Debug.Log
然后LogAssert.Expect
2017.1起可以在全球范围内进行,见LogAssert-ignoreFailingMessages
@Jethro 感谢您的提醒【参考方案2】:
要允许所有错误消息,您可以将 LogAssert.ignoreFailingMessages 设置为 true。
【讨论】:
以上是关于如果脚本中记录了错误,则 PlayMode 测试默认停止的主要内容,如果未能解决你的问题,请参考以下文章
All compiler errors have to be fixed before entering playmode