更新:增加2019年;发现/运行器集成机制与2017年和2015年相同,因此可能出错的关键问题是相同的。


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

我已经看了输出窗口,并没有看到任何东西在测试下从选项卡显示输出。


当前回答

我希望我的回答对你们中的一些人有所帮助: 在大多数情况下,当我的单元测试没有被发现时,我必须将测试类访问修饰符更改为public。当添加一个新类(Shift+Alt+C)时,默认的访问修饰符是内部的,大多数时候我忘记更改它。

其他回答

很长一段时间以来,我一直被这个问题困扰着。

我有大约100个不同版本的项目部署在不同的服务器上。 将xunit从2.2.0更新到2.3.1并不是一个解决方案,因为在2.3.1中构建失败。

然后我把xunit.runner.visualstudio更新到2.3.1,一切都开始正常工作了。 我已经在包管理器控制台中使用了这个命令来更新xunit.runner.visualstudio包

Get-Project ComapanyName.ProjectName.*.Tests | Install-Package xunit.runner.visualstudio -Version 2.3.1

遇到类似的问题,VS没有发现测试方法。在我的情况下,我有静态关键字的方法,我删除了它,它工作。

[TestMethod]

Before: public static void Test1()

After: public void Test1()

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

我有测试项目A和B.在项目A中发现的测试,但发现从未停止B.我不得不手动杀死TestHost使停止。

我做了很多这篇文章描述的事情,甚至到了我不确定这是否是解决方案的地步。

现在它工作了,我所做的事情是打开解决方案,并没有测试资源管理器。相反,我只是检查输出窗口的测试,我可以看到发现过程结束,测试的数量等于A+B。在这之后,我打开测试资源管理器,然后A和B都出现了。 所以:

正确卸载和安装最新的xUnit。删除上面提到的%temp%,添加NuGet包" microsoft . testplatform . testthost " 添加NuGet包“Microsoft.NET.Test”。Sdk”,重新启动,但只检查测试输出。如果有效,你会看到的

这发生在我身上几次-当我清理项目并再次构建它时,它往往是好的。