【问题标题】:QTAgent32.exe has stopped workingQTAgent32.exe 已停止工作
【发布时间】:2013-08-09 03:20:46
【问题描述】:

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

从解决方案运行所有单元测试时,我随机收到“QTAgent32.exe 已停止工作”错误消息,此时单元测试挂起。

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

【问题讨论】:

    标签: .net visual-studio unit-testing visual-studio-2012 resharper


    【解决方案1】:

    终于找到了原因

    一段代码写错了,在某些情况下导致无限递归和堆栈溢出。因此,如果您收到相同的错误“QTAgent32.exe 已停止工作”,请尝试检查此时您的调用 stak 是什么。

    【讨论】:

    • 谢谢 :) 这里也一样
    【解决方案2】:

    我遇到了类似的问题,所以我将在这里为遇到相同问题的其他人提供解决方案。

    每当尝试运行任何单元测试时,我都会收到“QTAgent32.exe 已停止工作”。这是在我通过将一些代码提取到类库中重新组织我的解决方案之后开始的。

    这是针对 VS Premium 2012 更新 4 中的 .NET 3.5 解决方案。

    最后的解决方法是删除 suo 文件。 (顺便说一下,这是一个隐藏文件。)

    【讨论】:

    • 这暂时解决了问题,但又回来了。我硬着头皮切换到 xUnit.net,它有自己的测试运行器。 (这意味着没有使用 QTAgent。)我花了一天时间移植我所有的 588 测试。现在一切正常。
    【解决方案3】:

    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 文件。

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,问题是一些测试在 ThreadPool.QueueUserWorkItem 中包含 Thread.Sleep

      我在删除测试配置文件后发现了错误所在:my-project.testsettings。删除此文件会停止 QTAgent32.exe 已停止工作消息并开始显示有关线程被中止的异常。

      【讨论】:

        【解决方案5】:

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

        以管理员身份运行 Visual Studio 为我解决了这个问题。可能只是消除症状而不是原因,但它确实有效。

        【讨论】:

          【解决方案6】:

          就我而言,我有一个async 测试,在assert 语句之后进行了清理。测试始终为绿色(通过),但每次执行后都会出现'QTAgent32.exe has stopped working' 错误。

          assert 语句之后,我在null 的对象上调用了一个方法。我认为这是由于async 测试的行为导致NullReferenceException 被吞下。

          我通过简单地调试测试发现了问题。也许这会对将来的某人有所帮助。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-04-15
            • 1970-01-01
            • 2011-10-18
            • 1970-01-01
            • 1970-01-01
            • 2016-03-08
            • 2014-06-11
            • 1970-01-01
            相关资源
            最近更新 更多