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


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

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


当前回答

I Cleared Temp, %Temp% and Prefetch。然后尝试重新打开VS,并能够找到测试方法

其他回答

还要检查测试项目中是否有一个完全空白的app.config文件(完全空白,没有任何标记)。这就是我的罪魁祸首。

还有一个原因可能导致测试资源管理器不显示任何测试,这与Visual Studio 2017 /为. net Core引入的新的可移植的.pdb文件格式有关,这可能会破坏一些VS工具。(背景:参见bug报告“Mono.”Cecil导致OutOfMemoryException与新的.csproj PDBs"。)

您的测试是否因为新的可移植.pdb(调试符号)格式而无法找到?

打开输出窗口。 将显示输出的下拉选择从更改为测试。 如果您看到如下输出(可能在每个测试中都重复一次),那么您就遇到了这个答案中描述的问题: 系统异常。OutOfMemoryException,异常转换<SignatureOfYourTestMethod> 数组尺寸超出支持范围。

如果是,请执行以下步骤解决问题:

Open your test project's Properties (select the test project in Solution Explorer and press Alt+Enter). Switch to the Build tab. Click on the Advanced... button (located at the very end of that tab page). In the drop-down labelled Debugging information, choose none, pdb-only, or full, but NOT portable. It is this last setting that causes the tests to not be found. Click OK and clean & rebuild your project. If you want to be extra sure, go to your test project's output directory and clean all .pdb files before rebuilding. Now your tests should be back.

在我的例子中,我创建了一个新的“解决方案配置”,如图所示。所以当我选择我的自定义为“Prod”时,由于某些原因它不识别testmethods。更改回“Debug”可以解决问题

在我的案例中,我在同一个解决方案中有多个测试项目,只有一个项目没有显示“测试资源管理器”

我通过右键单击解决方案进入“管理解决方案的Nuget包”。

我注意到在“巩固”标签下有一些“测试”的nuget包在项目之间不同步。我点击“安装”,丢失的测试就出现了。

我使用的是xUnit 2.2.0。

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

当我安装xunit.runner.console并试图通过命令行运行测试时,我能够识别出错误。

如何在CLI中运行xunit测试。