为什么Visual Studio 2015/2017 Test Runner没有发现我的xUnit v2测试

Rub*_*ink 159 .net unit-testing visual-studio visual-studio-2015 xunit2

更新:添加2017年; VS2017使用与2015年相同的测试发现/运行器集成机制,因此可能出错的关键事项是相同的.


我已经阅读了为什么xUnit运行器没有找到我的测试,这涵盖了xUnit 永远无法找到你的测试但我的问题不同的原因 - 我相信我的测试没有任何微妙的变化; (他们在其他环境中工作过,这似乎只是我的机器) - Visual Studio 2015中的Visual Studio Test Runner [社区版]根本没有显示我的任何测试.我没有做任何令人兴奋的事情; 测试针对桌面上的xUnit.net v2.

我查看了"输出"窗口,在" 显示"选项卡的"输出"中的" 测试"下看不到任何内容.

Rub*_*ink 193

  1. 消除查询中的发现异常; 转到输出窗口(Ctrl-Alt-O),然后将显示输出从下拉列表(Shift-Alt-S)切换到测试并确保没有发现异常

  2. 正如在这个答案中所提出的(如果技术有所帮助), 运行桌面控制台运行器(指令)可以是一个很好的交叉检查,以消除其他可能性,例如损坏的配置文件: -

    packages\xunit.runner.console.2.2.0\tools\xunit.console <tests.dll>

  3. 测试|测试设置|默认处理器体系结构可以帮助您的测试是特定于x86/x64并且发现是触发与bittedness相关的异常,即不是AnyCpu


去阅读文档 - 它是全面的,最新的,包括故障排除信息和需要PR: -

重要说明:如果您以前安装了xUnit.net Visual Studio Runner VSIX(扩展),则必须先将其卸载.Visual Studio运行程序现在只通过NuGet分发.要删除它,请转到工具 > 扩展和更新.滚动到列表底部,如果安装了xUnit.net,请将其卸载.这将强制您重新启动Visual Studio.

如果您在发现或运行测试时遇到问题,则可能是Visual Studio中损坏的运行器缓存的受害者.要清除此缓存,请关闭Visual Studio的所有实例,然后删除该文件夹%TEMP%\VisualStudioTestExplorerExtensions.还要确保您的项目仅链接到单个版本的Visual Studio runner NuGet包(xunit.runner.visualstudio).

以下步骤对我有用:

  1. (只有当你怀疑你的机器出现严重问题时 - 通常情况下,更常见的情况是视觉工作室集成尚未安装)

    执行DEL %TEMP%\VisualStudioTestExplorerExtensions的建议: -

    PS> del $env:TEMP\VisualStudioTestExplorerExtensions

  2. xunit.runner.visualstudio在所有测试项目中安装NuGet包

    重建以确保xunit.runner在输出目录中结束

  3. 关闭测试资源管理器< - 这对我来说是缺失的

  4. 重新打开测试资源管理器(Alt-S,W,T)

  5. 运行所有测试(Ctrl R,A)

  • "关闭测试资源管理器< - 这对我来说是一个缺失的位置"这是我错过的最重要的一步,花了5个小时才弄明白.谢谢,我应该注意的步骤:) (12认同)
  • 真的很奇怪,但是删除 `%TEMP%\VisualStudioTestExplorerExtensions` 并重新启动 VS 终于奏效了! (3认同)

Max*_*Max 28

将测试项目CPU更改为x64后,我不得不更改测试设置.然后再次检测到测试.

建筑

  • 我必须清理-&gt;更改后重建。 (2认同)

Arm*_*man 27

以上解决方案均不适合我(dotnetcore 1.1,VS2017).这是修复它的原因:

  1. 添加NuGet包"Microsoft.TestPlatform.TestHost"
  2. 添加NuGet包"Microsoft.NET.Test.Sdk"

这些是我之前安装的这些包的补充:

  • xunit(2.3.0-beta1-build3642)
  • xunit.runner.visualstudio(2.3.0-beta1-build1309)

  • 这对我有帮助,我错过了xunit.runner.visualstudio包. (8认同)
  • "Microsoft.NET.Test.Sdk"为我解决了这个问题. (5认同)

Chr*_*cht 20

安装xunit.runner.visualstudio测试项目的包


sha*_*eed 18

确保您的测试类是public


小智 13

请遵循以下步骤:

  1. 更新您MsTest.TestAdapterMsTest.TestFramework dll'snugget package manager.
  2. 清洁你的解决方案
  3. 构建您的解决方案


Tom*_*kin 10

在使用ASP核心项目和xUnit 2.2.0时,我整个下午都在苦苦挣扎.我的解决方案是添加一个参考Microsoft.DotNet.InternalAbstractions

我在尝试手动运行测试项目时发现了这一点,dotnet test但失败了,但报告InternalAbstractions说它丢失了.当自动发现失败时,我在测试输出窗口中没有看到此错误.我在发现窗口中看到的唯一信息是返回代码,当时对我没有任何意义,但事后看来可能表示错误.


Lia*_*iam 8

这件事发生在我身上几次 - 当我清理项目并再次构建它时,它往往会很好.

  • 没有,它只是说没有找到测试 (2认同)

Cha*_*age 8

我在 Visual Studio 2019 上遇到了同样的问题。刚刚安装了以下 NuGet 包,问题就解决了。

1)。单位

2)。xunit.runner.visualstudio

3)。Microsoft.TestPlatform.TestHost

4)。微软.NET.Test.SDK


cur*_*Boy 6

花了2天之后......以上都没有为我工作.唯一的"解决方案"是:转到项目属性 - >构建选项卡.然后单击窗格右下角的"高级"按钮.将"Debug Info:"更改为"full",然后单击"确定".

以下是截图: 在此输入图像描述

在此输入图像描述在此输入图像描述


Jaw*_*bir 6

我的理由是项目调试器和测试运行器之间的目标构建不一样.统一这些元素:

  1. 测试>测试设置>默认处理器体系结构.然后选择X64或X86.
  2. 项目>(您的项目)属性>构建(选项卡)>平台目标.

在它们相同之后,重建您的解决方案,然后将为您显示测试方法.


Soh*_*amC 5

我使用的是xUnit 2.2.0.

我的问题是我的解决方案无法找到某些dll并app.config试图解决它们.该错误未显示在Visual Studio的测试输出窗口中.

我在安装时能够识别错误xunit.runner.console并尝试通过命令行运行测试.

如何在CLI中运行xunit测试.


bau*_*arb 5

我可以为几天前遇到的边缘案例提供解决方案.它不会是适合上述所有情况的解决方案,但是,对于边缘情况,我已经修复了它.

我最近的VS 2017(版本15.5.7)和XUnit 2.3.1遇到了同样的问题.安装了xunit.runner.visualstudio软件包,但测试没有出现在VisualStudio的内置测试资源管理器中.

我正在开发一个针对.NET framework 4.5的遗留项目.但是,从2.2版开始.XUnit不支持低于4.5.2的.NET框架(请参阅发行说明 - XUnit 2.2:2017年2月19日

将测试项目的目标框架更改为版本> = 4.5.2对我有用.您不必更改正在测试的项目版本,它只是测试项目本身.