编辑2016-10-19:
最初的问题是关于使用XUnit测试运行程序的VS2015 CTP6特有的问题。从答案中可以很明显地看出,Visual Studio中的单元测试发现存在着更为广泛的问题,这可能发生在许多不同的情况下。我整理了我的问题以反映这一点。
我还在自己的答案中包含了一个脚本,直到今天,当类似问题出现时,我仍会使用该脚本来解决它们。
事实证明,许多其他答案也有助于更好地理解VS测试运行程序的复杂性。我感谢人们仍在分享他们的解决方案!
原始问题2015-04-10:
从昨天开始,我的Visual Studio Test Explorer将不会发现我的任何项目的测试。构建后,它也不显示绿色的加载栏。
当我转到Visual Studio测试资源管理器并单击“全部运行”时,或者当我右键单击任何测试方法并选择“运行测试”时,我将在输出窗口中获得以下内容:
Could not load file or assembly 'Microsoft.VisualStudio.Web.ProjectSystem, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
我在Windows 10运行Visual Studio 2015年CTP 6 Pro的技术预览版,构建10041. .NET Framework版本似乎并不重要-它发生的4.0
,4.5.2
和4.6
。
我尝试使用以下测试框架,并且所有框架都具有相同的行为:
Microsoft.VisualStudio.QualityTools.UnitTestFramework v14.0.22609.0
xunit v2.1.0-beta1-build2945
与xunit.runner.visualstudio v2.1.0-beta1-build1051
NUnit v2.6.4
与NUnitTestAdapter v2.0.0
我在GitHub(xunit)上发现了一个看起来类似的问题:xunit团队发表了以下评论,无法发现测试#295:
请注意,据报告,Visual Studio 2015 CTP 5已被许多进行单元测试的人员破坏(不仅仅是xUnit.net),因此不要指望它能起作用。
另外,请确保您已经清除了Visual Studio的运行器缓存。如果损坏,Visual Studio将永久行为不端,直到将其删除。要清除缓存,请关闭所有Visual Studio实例,然后删除文件夹%TEMP%\ VisualStudioTestExplorerExtensions(老实说,删除%TEMP%中可以删除的所有内容可能不会受到损害)。
我尝试了他们的建议删除该文件夹%TEMP%\VisualStudioTestExplorerExtensions
。不幸的是,这不能解决问题。
我注意到,实际上ReSharper的是能够发现一些测试。它仅适用于VS和NUnit测试,不适用于xunit。
我必须清除某种临时文件夹或缓存文件夹,但是我知道Visual Studio有许多临时文件夹或缓存文件夹,并且并非可以删除所有它们而没有不良影响。