我有一个带有大量单元测试的 VS2012/.NET4.5 解决方案
从解决方案运行所有单元测试时,我随机收到“QTAgent32.exe 已停止工作”错误消息,此时单元测试挂起。
我的单元测试实际上是 MSTest,我使用 VS 的 Resharper 菜单运行它们。Resharper 版本是 7.1.3,不确定是否重要。VS 2012 SP 3
我有一个带有大量单元测试的 VS2012/.NET4.5 解决方案
从解决方案运行所有单元测试时,我随机收到“QTAgent32.exe 已停止工作”错误消息,此时单元测试挂起。
我的单元测试实际上是 MSTest,我使用 VS 的 Resharper 菜单运行它们。Resharper 版本是 7.1.3,不确定是否重要。VS 2012 SP 3
终于找到了原因
一段代码写错了,在某些情况下导致无限递归和堆栈溢出。因此,如果您收到相同的错误“ QTAgent32.exe 已停止工作”,请尝试检查此时您的呼叫 stak 是什么。
我有一个类似的问题,所以我会在这里为其他有同样问题的人提供解决方案。
每当尝试运行任何单元测试时,我都会收到“QTAgent32.exe 已停止工作”。这是在我通过将一些代码提取到类库中重新组织我的解决方案之后开始的。
这是针对 VS Premium 2012 更新 4 中的 .NET 3.5 解决方案。
最后的修复是删除 suo 文件。(顺便说一下,这是一个隐藏文件。)
FWIW:我在 VS2012中的解决方案是TraceAndTestImpact.testsettings
在解决方案目录中删除我的文件。(可能连同删除MySolutionName.sln.DotSettings.user
和以提升的权限运行)
如果您得到以下信息,
An exception occurred while test discoverer 'MSTestDiscoverer' was loading tests.
Exception: An error occurred while initializing the settings provider named 'MSTest'.
Error: The test settings file C:\....\TraceAndTestImpact.testsettings, specified in
the MSTestAdapter settings, is not available. Either access to the file is denied or
the file does not exist. Ensure that the test settings file is available and try again.
尝试使用提升的权限加载解决方案。雪上加霜的是,没有TraceAndTestImpact.testsettings
创建新文件。
我有同样的问题,问题是Thread.Sleep
在ThreadPool.QueueUserWorkItem
.
删除测试配置文件后,我发现错误出在哪里:my-project.testsettings。删除此文件会停止QTAgent32.exe 已停止工作消息并开始显示有关正在中止的线程的异常。
重新启动我的 PC 并运行 Visual Studio Professional 2013 Update 2 后,我也遇到了同样的情况。即使是最简单的测试在输入之前也失败了,并且出现了“QTAgent32.exe 已停止工作”的消息。
以管理员身份运行 Visual Studio 为我解决了这个问题。可能只是消除症状而不是原因,但它起作用了。
就我而言,我有一个async
测试,在assert
声明之后进行了清理。测试始终为绿色(通过),但每次执行后都会'QTAgent32.exe has stopped working'
出现错误。
在assert
声明之后,我在一个对象上调用了一个方法null
。我认为这是由于被吞下的async
测试行为。NullReferenceException
我通过简单地调试测试发现了问题。也许这将有助于将来的某人。