相关疑难解决方法(0)

单元测试时如何处理在其他线程中引发的异常?

使用Visual Studio Team Test进行测试时,会在结果中捕获并报告测试中未处理的异常.所以我有点惊讶地看到测试托管进程(VSTestHost.exe)崩溃并显示系统崩溃对话框.

经过进一步调查,此崩溃是另一个线程中引发的未处理异常(更直接地,它是异步套接字回调).事实上这样的事情会导致托管过程崩溃:

[TestMethod]
void Test()
{
    new Thread(() => { throw new Exception(); }).Start();
}
Run Code Online (Sandbox Code Playgroud)

有什么建议我应该在那里做什么?

  • 我是否应该忍受它,说任何分发/签入的代码应该至少测试一次,所以这样的事情很可能会被抓住?
  • 我是否应该尝试安装全局异常处理程序并在每个拆除方法中检查其状态?
  • 或者也许已经存在帮助这个的东西?

multithreading unit-testing exception visual-studio

14
推荐指数
1
解决办法
3648
查看次数