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 中停止工作。到目前为止,这是我试图纠正这种情况的方法:
- 手动删除旧部署的单元测试应用。
- 手动部署单元测试应用。
- 运行 VS 2015 安装程序上的 "repair" 选项。
- 卸载并重新安装 VS 2015。
- 使用 GitHub 中的 VisualStudioUninstaller,然后重新安装 VS 2015。
- MSDN 论坛上的一位 MVP 查看了安装程序日志,并表示根据日志正确安装了所有内容。
- 使用新的单元测试项目创建新的解决方案。
单元测试应用程序启动,测试应用程序 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 适配器。
我有一个用于 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 中停止工作。到目前为止,这是我试图纠正这种情况的方法:
- 手动删除旧部署的单元测试应用。
- 手动部署单元测试应用。
- 运行 VS 2015 安装程序上的 "repair" 选项。
- 卸载并重新安装 VS 2015。
- 使用 GitHub 中的 VisualStudioUninstaller,然后重新安装 VS 2015。
- MSDN 论坛上的一位 MVP 查看了安装程序日志,并表示根据日志正确安装了所有内容。
- 使用新的单元测试项目创建新的解决方案。
单元测试应用程序启动,测试应用程序 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 适配器。