我的所有单元测试在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) ==========
尝试修复的步骤:
任何建议将不胜感激。我的下一步是擦除系统,但这将是痛苦的。
答案 0 :(得分:5)
您使用的是nUnit吗?我刚刚遇到类似情况转移到新电脑,导致所有现有测试都消失。
转到工具 - >扩展程序和更新 - >选择左侧的在线 - >在右上方的搜索框中输入“nunit test adapter'并安装它。
重新启动Visual Studio。
稍后重建一次,测试再次出现。
答案 1 :(得分:1)
我通过执行以下操作间接解决了这个问题:
(此时我所有的旧单元测试都显示了备份,以及新的单元测试)
(旧的单元测试仍然发现)
似乎某些不在我的代码中导致了问题,并添加了一个新的单元测试来修复它。不说为什么会发生这种情况,但如果你遇到问题,这个程序可能会为你解决。
答案 2 :(得分:1)
有完全相同的问题!
在我们的解决方案中,我们有树文件:
备份这些文件,删除它们并在没有它们的情况下启动解决方案。 建立并找到文件。 然后移回文件,它仍然工作......
这需要我们大约两天的故障排除。如果您遇到同样的问题,可能值得一试。
答案 3 :(得分:0)
任何时候当你对Google测试运行器有问题时,我更喜欢你尝试以exe作为项目运行,我有同样的问题,当我用命令行运行它时,我发现我使用的一些dll在我的执行文件夹。
答案 4 :(得分:0)
我知道这个问题已经过时了,但我遇到了同样的问题,我的一些测试在使用NUnit 3的VS 2013中停止显示。
我的测试没有显示,因为我在类上实现了IFormattable
,并且在重建项目后,该类的所有测试都消失了。我使用Visual Studio生成的IFormattable
接口的默认实现代码,它在生成的方法中抛出NotImplementedException
。事实证明,当类的ToString
方法抛出异常时,NUnit测试运行器将不会显示任何测试。在我正确实现ToString
方法之后,所有测试都开始显示它们应该如此。