QTAgent32.exe已停止工作。

11

我有一个包含大量单元测试的VS2012/.NET4.5解决方案。

在运行整个解决方案的所有单元测试时,我会随机地收到“QTAgent32.exe已停止工作”错误消息,导致单元测试在这一点上挂起。

我的单元测试实际上是MSTest,并且我使用VS中的Resharper菜单运行它们。 Resharper版本为7.1.3,不确定是否相关。 VS 2012 SP 3。

6个回答

8

最终我找到了原因

有一段代码编写错误,在某些情况下会导致无限递归和堆栈溢出。所以,如果你遇到相同的错误"QTAgent32.exe已停止工作",请尝试检查此时的调用堆栈。


谢谢 :) 同样在这里 - Sergey Kucher

4
我曾经遇到过类似的问题,所以我在这里为其他有同样问题的人提供解决方案。
每次运行任何单元测试时,我都会收到“QTAgent32.exe已停止工作”的错误提示。这是在将一些代码移动到一个类库后发生的。
这是在VS Premium 2012更新4下使用.NET 3.5解决方案的。
最终的解决方法是删除suo文件。(顺便提一句,这是一个隐藏文件。)

2
这暂时解决了问题,但问题又出现了。我咬紧牙关转向了xUnit.net,它有自己的测试运行器。(这意味着QTAgent不再使用。)我花了一天时间移植了我所有的588个测试。现在一切都正常工作。 - dan-gph

2

顺便说一句:我的解决方案是在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文件。


1
我遇到了相同的问题,原因是一些测试在 ThreadPool.QueueUserWorkItem 内部使用了 Thread.Sleep
在删除测试配置文件 my-project.testsettings 后,我找到了错误所在。删除该文件后,停止了 QTAgent32.exe 已停止工作 的提示,并开始显示线程中止的异常信息。

0

在我重新启动电脑后,运行Visual Studio Professional 2013 Update 2时也发生了同样的情况。即使是最简单的测试在输入之前就失败了,并出现了“QTAgent32.exe已停止工作”的消息。

以管理员身份运行Visual Studio解决了我的问题。可能只是消除了症状而不是原因,但它确实起作用了。


0
在我的情况下,我有一个async测试,在assert语句之后进行了清理。测试总是绿色的(通过),但每次执行后都会出现'QTAgent32.exe已停止工作'错误。
assert语句之后,我调用了一个对象上的方法,该对象为null。我认为这是由于async测试的行为导致NullReferenceException被吞噬了。
我通过简单地调试测试找到了问题。也许这将帮助未来的某个人。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接