如果在Unity的单元测试下开启了一个多线程,在线程运行的情况下中断了测试,那么TearDown是不会被调用的,此时线程就没法Abort。这个时候该怎么办呢,推荐在SetUp中生成一个GameObject,GameObject上挂载一个脚本,脚本如下
1 using System; 2 using UnityEngine; 3 4 public class ShutDownController : MonoBehaviour 5 { 6 private Action _onQuit; 7 8 public void RegisterQuit(Action action) 9 { 10 _onQuit = action; 11 } 12 13 public void OnApplicationQuit() 14 { 15 if (null != _onQuit) 16 _onQuit(); 17 } 18 }
然后将原本放在TearDown中的代码改为注册到RegisterQuit上即可
浙公网安备 33010602011771号