Visual Studio 2015 年的单元测试已停止工作

Unit testing in Visual Studio 2015 has stopped working

我有一个用于 UWP C++ 静态库的 C++ UWP 单元测试项目,在 C++ Windows 10 UWP 应用程序中,在 Visual Studio 2015 解决方案中。我正在使用 VS 2015 内置的单元测试。它完美地工作了几个月,然后有一天,当我尝试 运行 来自测试资源管理器的测试时收到此消息:

DEP3000 : Attempts to stop the application failed. This may cause the deployment to fail. Exception from HRESULT: 0x92330047

之后,单元测试在 Visual Studio 中停止工作。到目前为止,这是我试图纠正这种情况的方法:

  1. 手动删除旧部署的单元测试应用。
  2. 手动部署单元测试应用。
  3. 运行 VS 2015 安装程序上的 "repair" 选项。
  4. 卸载并重新安装 VS 2015。
  5. 使用 GitHub 中的 VisualStudioUninstaller,然后重新安装 VS 2015。
  6. MSDN 论坛上的一位 MVP 查看了安装程序日志,并表示根据日志正确安装了所有内容。
  7. 使用新的单元测试项目创建新的解决方案。

单元测试应用程序启动,测试应用程序 window 出现一两分钟,然后应用程序关闭。但是,测试资源管理器 window 留下了那个忙碌的栏,等待来自测试应用程序的响应(我假设)。

我有三台开发机器。单元测试已停止以相同的方式对其中两个进行工作。还剩一个。我唯一没有做的就是擦除驱动器并从头开始重新安装 Windows 10(以及其他所有内容)。在我这样做之前(或切换到另一个单元测试框架)我想我会在这里检查 Stack Overflow 上是否有人知道如何解决这个问题。好像注册表中有什么东西被踩踏了,或者配置文件 VS 藏在了某个地方,但我不知道去哪里看。

提前致谢。

我在这里回答我自己的问题,但它仍然是一个答案。我花了 10 周时间与 Microsoft Visual Studio 技术支持人员一起工作(让他们远程访问我的系统以 运行 测试程序并生成日志文件)。没有人能够 figure-out 发生了什么事。最后,他们让我与实施和维护 VS 单元测试框架的人员取得联系。我们还与他们的开发人员检查了我的系统,进行了几次远程 sessions。在最近的 session 上,他终于 figured-out 出了什么问题。

visual studio启动的测试应用使用本地网络将单元测试结果发送到IDE应用。 如果您的计算机上有多个网络适配器,单元测试框架可能会混淆并尝试通过错误的网络适配器与 IDE 通信。 因此,VS TestExplorer只是挂在那里等待测试应用程序的响应,而测试应用程序挂在那里试图通过错误的网络找到 TestExplorer。

解决方法: 我的开发系统有三个网络适配器:以太网、蓝牙和 Wi-Fi。禁用未使用的蓝牙和 Wi-Fi 适配器会强制单元测试框架在正确的适配器上找到 IDE。之后,单元测试又开始起作用了。一旦它开始工作,我就可以 re-enable 其他两个适配器。我假设如果它再次失败,那么我将不得不经历同样的过程。

Microsoft 最终会在 Visual Studio 的未来版本中包含此问题的修复程序,但在那之前,您可以通过禁用未使用的网络适配器、运行 单元测试来解决此问题这样他们就可以找到 TestExplorer,然后 re-enable 适配器。