测试在Visual Studio 2013中消失

时间:2014-02-07 16:40:48

标签: visual-studio-2010 visual-studio-2013 mstest

我的所有单元测试在Visual Studio 2013中突然消失,我似乎无法在测试资源管理器中发现它们。

我们使用visual studio 2010作为主要环境。我安装了Visual Studio 2013 Express Desktop作为我的首选编辑器,在其中工作,然后在2010年进行最终构建/签到。2010年一切正常。但2013快递将不再发现测试。它曾经,然后在工作中间停止了变化。这些是mstest测试。

我得到以下测试输出:

------ Discover test started ------
TestTypes\13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b could not be loaded because the TIP could not be instantiated for the following reason(s): System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Tip, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Tip, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)
   at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName)
   at System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
   at System.Type.GetType(String typeName, Boolean throwOnError)
   at Microsoft.VisualStudio.TestTools.TestManagement.TipDelayLoader.LoadTip()

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

========== Discover test finished: 0 found (0:00:00.1640164) ==========

尝试修复的步骤:

  • 从存储库中检出新的源副本
  • 验证其他开发人员没有此问题(他们的2013安装查找测试)
  • 2013年修理
  • 删除2013,重启,安装2013
  • 创建了新的WPF项目并添加了测试(已发现测试,但问题未解决)

任何建议将不胜感激。我的下一步是擦除系统,但这将是痛苦的。

5 个答案:

答案 0 :(得分:5)

您使用的是nUnit吗?我刚刚遇到类似情况转移到新电脑,导致所有现有测试都消失。

转到工具 - >扩展程序和更新 - >选择左侧的在线 - >在右上方的搜索框中输入“nunit test adapter'并安装它。

重新启动Visual Studio。

稍后重建一次,测试再次出现。

答案 1 :(得分:1)

我通过执行以下操作间接解决了这个问题:

  • 添加了一个名为Testable
  • 的新空类
  • 添加了一个新的单元测试来测试它

(此时我所有的旧单元测试都显示了备份,以及新的单元测试)

  • 将所有更改还原为
  • 中检查的内容

(旧的单元测试仍然发现)

似乎某些不在我的代码中导致了问题,并添加了一个新的单元测试来修复它。不说为什么会发生这种情况,但如果你遇到问题,这个程序可能会为你解决。

答案 2 :(得分:1)

有完全相同的问题!

在我们的解决方案中,我们有树文件:

  • Local.testsettings
  • LocalTestRun.testrunco​​nfig
  • TraceAndTestImpact.testsettings

备份这些文件,删除它们并在没有它们的情况下启动解决方案。 建立并找到文件。 然后移回文件,它仍然工作......

这需要我们大约两天的故障排除。如果您遇到同样的问题,可能值得一试。

答案 3 :(得分:0)

任何时候当你对Google测试运行器有问题时,我更喜欢你尝试以exe作为项目运行,我有同样的问题,当我用命令行运行它时,我发现我使用的一些dll在我的执行文件夹。

  1. 如果您在项目中使用了任何dll,请验证它们是否在您执行文件夹(或GAC)中
  2. 尝试通过exe(命令行)运行gtest项目,您将获得信息错误按摩,而不是测试消失。

答案 4 :(得分:0)

我知道这个问题已经过时了,但我遇到了同样的问题,我的一些测试在使用NUnit 3的VS 2013中停止显示。

我的测试没有显示,因为我在类上实现了IFormattable,并且在重建项目后,该类的所有测试都消失了。我使用Visual Studio生成的IFormattable接口的默认实现代码,它在生成的方法中抛出NotImplementedException。事实证明,当类的ToString方法抛出异常时,NUnit测试运行器将不会显示任何测试。在我正确实现ToString方法之后,所有测试都开始显示它们应该如此。