Visual studio 2008 为什么VisualStudio会在运行单元测试时发生未经处理的异常?

Visual studio 2008 为什么VisualStudio会在运行单元测试时发生未经处理的异常?,visual-studio-2008,unit-testing,exception,unhandled-exception,Visual Studio 2008,Unit Testing,Exception,Unhandled Exception,也许有人能解释我为什么在运行单元测试时会出现未处理的异常?难道环境不应该处理所有异常并将测试设置为失败吗 这可能与单元测试通过C++/CLI调用非托管代码有关 提前谢谢 编辑:只是澄清一下,问题并不是没有例外。问题是异常没有导致单元测试失败并将执行下一个单元测试 没有什么比AccessViolation异常更糟糕的了,只有StackOverflow更糟糕。我可以理解为“通信”,即非托管代码可能运行在CLR和测试运行程序都不知道的线程中。选项非常有限,没有办法让这样的线程简单地存在 这是一个内存损

也许有人能解释我为什么在运行单元测试时会出现未处理的异常?难道环境不应该处理所有异常并将测试设置为失败吗

这可能与单元测试通过C++/CLI调用非托管代码有关

提前谢谢

编辑:只是澄清一下,问题并不是没有例外。问题是异常没有导致单元测试失败并将执行下一个单元测试


没有什么比AccessViolation异常更糟糕的了,只有StackOverflow更糟糕。我可以理解为“通信”,即非托管代码可能运行在CLR和测试运行程序都不知道的线程中。选项非常有限,没有办法让这样的线程简单地存在


这是一个内存损坏问题,CRT中的调试分配器用0xfeeefeee填充释放的内存块。顺便说一句,这不符合犹太教义,您应该只在发布版本上运行单元测试。

Mmmmm,在这种情况下,您是正确的,异常是在由非托管代码创建的线程中生成的(使用ACE库)。那么在这种情况下,这就是预期的行为?有办法改变吗?谢谢。(这个bug是已知的,并且已经修复了,但是修复还没有发布,所以我需要用这个bug运行UT一段时间。)对我来说偶尔会有一次。是的,这是意料之中的,不能让那根线消失。除了在调试构建的代码上运行单元测试之外,让它在已知和修复的bug上运行也没有什么意义。你到底在干什么?你知道这个bug,你知道bug修复,为什么你想证明这个bug在一周前就存在?有些实用主义的感觉在这里是有道理的。如果你发现了错误修复,停止向自己证明你很酷,这是没有效率的。生活并不像你想象的那么简单,我们对我们提供的可交付成果进行单元测试。我们不会修复我们发现的所有bug(至少不会立即修复),因为在低优先级区域修复bug可能会在高优先级区域创建bug(我们谈论的是医疗软件)。我想说,当你缺乏很多信息的时候,把别人当成傻瓜不是一个好主意。无论如何谢谢你的帮助。