在调试MSpec测试时如何避免DisconnectedContext异常?

时间:2015-12-05 15:06:55

标签: c# testing visual-studio-2015 mspec

调试MSpec测试时出现DisconnectedContext错误,即使是在测试为空的新项目中也是如此。消息显示托管调试助手在

中发现了问题
  

C:\ PROGRAM FILES(X86)\ MICROSOFT VISUAL STUDIO 14.0 \ COMMON7 \ IDE \ COMMONEXTENSIONS \ MICROSOFT \ TESTWINDOW \ te.processhost.managed.exe

在另一个解决方案中,我在调试时得到FileNotFoundException

  

C:\用户\ ME \ APPDATA \ LOCAL \ MICROSOFT \ VisualStudio的\ 14.0 \ EXTENSIONS \ WGPFTPGA.WNV \ Machine.VSTestAdapter.resources.dll

Visual Studio突然损坏还是设置问题?我已经尝试重新安装MSpec测试适配器。

2 个答案:

答案 0 :(得分:2)

我今天也遇到了同样的错误。我试图将log4net添加到VS2015中的Tests项目中。 我只是在<log4net>下的app.config中添加了一个<configuration>部分(子节点appender,root,logger ...)。然后我收到了错误:

  

发生了DisconnectedContext

     

消息:托管调试助手'DisconnectedContext'在'C:\ PROGRAM FILES(X86)\ MICROSOFT VISUAL STUDIO 14.0 \ COMMON7 \ IDE \ COMMONEXTENSIONS \ MICROSOFT \ TESTWINDOW \ te.processhost.managed.exe'中检测到问题。

     

其他信息:为此RuntimeCallableWrapper转换到COM上下文0x1301ae0失败,并显示以下错误:调用的对象已与其客户端断开连接。 (来自HRESULT的异常:0x80010108(RPC_E_DISCONNECTED))。这通常是因为创建此RuntimeCallableWrapper的COM上下文0x1301ae0已断开连接或正忙于执行其他操作。从当前COM上下文释放接口(COM上下文0x1301970)。这可能会导致损坏或数据丢失。要避免此问题,请确保所有COM上下文/公寓/线程都保持活动状态并可用于上下文转换,直到应用程序完全使用表示其中的COM组件的RuntimeCallableWrappers完成。

此外,在Debug输出中,有一条关于ConfigurationErrorsException的有用消息:

------ Run test started ------
NUnit VS Adapter 2.0.0.0 executing tests is started
Loading tests from C:\....Tests.dll
Exception System.Configuration.ConfigurationErrorsException, Exception thrown executing tests in C:\....\Tests.dll
NUnit VS Adapter 2.0.0.0 executing tests is finished
========== Run test finished: 0 run (0:00:46.9507369) ==========

我意识到您还需要在<section>中添加<configSections>声明:

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

添加此内容后,错误就消失了。不确定这是否与您的错误有关,但可能有所帮助。

答案 1 :(得分:1)

这也发生在我身上。我的问题是什么,当我尝试发出一个sql调用(一些简单的SQL问题)时,我得到了一个uncaugt异常。这向我表明,由于一些奇怪的原因,如果你有一个非常高的异常,它会在测试方法本身之上冒泡,你可能会得到这个。试一试{你在试验中尝试的所有东西}捕捉(例外e){Console.WriteLine(e)}

在控制台上有一个断点..线。

这解决了我的问题。