编辑 2016-10-19:
最初的问题是关于带有 XUnit 测试运行器的 VS2015 CTP6 特有的问题。从答案中可以清楚地看出,Visual Studio 中的单元测试发现存在一个更广泛的问题,可能会在许多不同的情况下发生。我已经清理了我的问题以反映这一点。
我还在自己的答案中包含了一个脚本,直到今天我仍然使用它来解决出现的类似问题。
许多其他答案也被证明有助于更好地理解 VS 测试运行器的复杂性。我很欣赏人们仍在分享他们的解决方案!
原始问题2015-04-10:
从昨天开始,我的 Visual Studio 测试资源管理器不会发现我的任何项目的测试。它也不会在构建后显示绿色加载条。
当我转到 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 Pro Technical Preview 上运行 Visual Studio 2015 CTP 6 ,构建 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) 上发现了一个看起来相似的问题:Cannot get tests found #295,来自 xunit 团队的评论:
请注意,据报道,Visual Studio 2015 CTP 5 已被许多进行一般单元测试的人(不仅仅是 xUnit.net)破坏,所以不要指望它会起作用。
此外,请确保您已清除 Visual Studio 的运行器缓存。如果它被损坏,Visual Studio 将永久行为不端,直到它被删除。要清除缓存,请关闭 Visual Studio 的所有实例,然后删除文件夹 %TEMP%\VisualStudioTestExplorerExtensions(老实说,删除 %TEMP% 中可以删除的所有内容可能不会有什么坏处)。
我尝试了他们删除文件夹的建议%TEMP%\VisualStudioTestExplorerExtensions
。不幸的是,这并没有解决问题。
我注意到 ReSharper 实际上能够发现一些测试。它仅适用于 VS 和 NUnit 测试,不适用于 xunit。
必须有某种临时或缓存文件夹我需要清除,但我知道 Visual Studio 有很多,并不是所有的都可以删除而不会产生不必要的副作用。