为什么Run All会导致VS2012单元测试崩溃,但逐个运行却没有?

sgr*_*zko 31 unit-testing visual-studio-2012

我们刚刚从Visual Studio 2008"升级"到Visual Studio 2012.我们更新了单元测试,现在它们在单独运行时通过但是当我尝试全部运行时,我收到以下错误:

The active Test Run was aborted because the execution process exited unexpectedly. To investigate further, enable local crash dumps either 
at the machine level or for process vstest.executionengine.appcontainer.x86.exe. Go to more details: [http://go.microsoft.com/fwlink/?linkid=232477][1]
Run Code Online (Sandbox Code Playgroud)

所以我转到链接并按照说明添加注册表项以启用本地故障转储.然后将错误消息更改为:

The active Test Run was aborted because the execution process exited unexpectedly. Check the execution process logs for more information. 
If the logs are not enabled, then enable the logs and try again.
Run Code Online (Sandbox Code Playgroud)

显然它注意到我在注册表中所做的更改以启用崩溃.但是,当我查看%LOCALAPPDATA%\ CrashDumps时,没有创建任何文件.

如果我一次运行一个测试(或者一次只进行几次测试),我可以让它们全部通过.问题仅在于全部运行.

有没有其他人遇到类似的问题?如果是这样,你是如何解决它们的?

基本上同样的问题在MSDN上被问到,但答案是"点击崩溃转储的链接".这个答案对我没有帮助,因为我没有看到崩溃转储的任何链接,我无法生成崩溃转储.

关于StackOverflow的这个问题也很相似,最终导致在Microsoft Connect上记录了一个错误(由于某种原因看起来会推迟),但我的问题可能会有所不同,因为我的代码与"异步任务"无关(我不认为).

编辑:问题消失了,似乎是独立的,但问题可能是一个例外,没有被单元测试代码捕获,正如下面的一些答案所示.但是,我仍然感到困惑的是为什么问题只出现在Run All中,而不是在运行较小的测试组或Debug All时.

Dou*_*oug 43

我有同样的问题,测试失败显然没有理由.后来我发现一个有缺陷的方法导致了StackOverflowException.当我修复我的bug时,VS bug就消失了.

也许它大部分时间都可以工作,因为你没有运行错误的代码.

  • 对我来说也是一个`StackOverflowException`.调试所有测试在SOE被触发时工作并实际产生程序错误,允许我打破并检查callstack. (8认同)

sgr*_*zko 21

到目前为止,我最好的解决方法是调试所有.这是通过TEST - > Debug - > All Tests完成的.它显然较慢,但不会崩溃.