unit-testing - Visual Studio 2015 或 2017 未发现单元测试

标签 unit-testing visual-studio-2015 visual-studio-2017 xunit test-runner

编辑2016年10月19日:

最初的问题是关于 XUnit 测试运行程序的 VS2015 CTP6 特有的问题。从答案中可以清楚地看出,Visual Studio 中的单元测试发现存在一个更广泛的问题,可能会在许多不同的情况下发生。我已经清理了我的问题以反射(reflect)这一点。

我还在自己的答案中包含了一个脚本,至今我仍然使用该脚本来解决出现的类似问题。

事实证明,许多其他答案也有助于更好地理解 VS 测试运行程序的复杂性。我很感激人们仍在分享他们的解决方案!

<小时/>

原始问题2015-04-10:

从昨天开始,我的 Visual Studio 测试资源管理器将无法发现我的任何项目的测试。构建后它也不显示绿色加载栏。

当我转到 Visual Studio 测试资源管理器并单击“全部运行”时,或者当我右键单击任何测试方法并选择“运行测试”时,我会在输出窗口中看到以下内容:

无法加载文件或程序集“Microsoft.VisualStudio.Web.ProjectSystem,Version=14.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。系统找不到指定的文件。

我正在 Windows 10 Pro Technical Preview(版本 10041)上运行 Visual Studio 2015 CTP 6。.NET Framework 版本似乎并不重要 - 它发生在 4.04.5.2 上4.6

我尝试了以下测试框架,它们都给出了相同的行为:

  • Microsoft.VisualStudio.QualityTools.UnitTestFramework v14.0.22609.0
  • xunit v2.1.0-beta1-build2945xunit.runner.visualstudio v2.1.0-beta1-build1051
  • NUnit v2.6.4NUnitTestAdapter v2.0.0
<小时/>

我在 GitHub (xunit) 上发现了一个看起来类似的问题:Cannot get tests discovered #295 ,来自 xunit 团队的评论:

Be aware that Visual Studio 2015 CTP 5 has been reported to be broken by many people with unit testing in general (not just xUnit.net), so don't expect that to work.

Also, please make sure you've cleaned out Visual Studio's runner cache. If it gets corrupted, Visual Studio will permanently misbehave until it's deleted. To clear the cache, shut down all instances of Visual Studio, then delete the folder %TEMP%\VisualStudioTestExplorerExtensions (honestly, it probably wouldn't hurt to delete everything in %TEMP% that can be deleted).

我尝试了他们的建议来删除文件夹 %TEMP%\VisualStudioTestExplorerExtensions。不幸的是,这并没有解决问题。

我注意到 ReSharper 实际上能够发现一些测试。它仅适用于 VS 和 NUnit 测试,不适用于 xunit。

必须有某种我需要清除的临时或缓存文件夹,但我知道 Visual Studio 有很多这样的文件夹,并且并非所有这些文件夹都可以删除而不产生不需要的副作用。

最佳答案

令我惊讶的是,清除位于 %TEMP% 的临时文件目录为我解决了这个问题。

注意:这个路径一般在 C:\Users\(yourusername)\AppData\Local\Temp

由于包含@Warren-P,您可以通过输入 %temp% 导航到临时文件夹在“开始”菜单中,或启动“文件资源管理器”并输入 %temp%在地址栏中。

关于unit-testing - Visual Studio 2015 或 2017 未发现单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29560011/

相关文章:

angularjs - angular.factory 的单元测试是什么以及如何进行

java - Mockito 无效使用 Matchers 异常

c# - "WireUpCoreRuntime"任务意外失败

asp.net - 如何为 Visual Studio 2015 设置 dnvm 版本

c# - 模拟抽象保护方法

javascript - 覆盖匹配器的默认 Jasmine 错误消息

asp.net-mvc - ntext 属性的 ASP.NET MVC textarea 标签助手不起作用

.net - TFS 2015 构建模板无法构建 C#7 功能

c++ - 谁在这里? g++ 还是 Visual Studio 2017?

dll - 无法在 Visual Studio 2017 之外运行 UWP 版本可执行文件