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


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

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


当前回答

在我的案例中,原因是项目调试器和测试运行器之间的目标构建不相同。统一这些元素:

Test>测试设置>默认处理器架构。然后选择X64或X86。 项目>(您的项目)属性>构建(选项卡)>平台目标。

在它们完全相同之后,重新构建您的解决方案,然后测试方法将为您出现。

其他回答

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

[TestMethod]

Before: public static void Test1()

After: public void Test1()

还有一个原因可能导致测试资源管理器不显示任何测试,这与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.

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

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

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

打开输出->测试并查看错误是什么。在我的例子中,我有这样的错误消息:

The framework 'Microsoft.AspNetCore.App', version '5.0.0' (x64) was not found.

在安装。net SDK 5.0后,测试立即生效:https://dotnet.microsoft.com/download/dotnet/thank-you/sdk-5.0.402-windows-x64-installer

在属性窗口检查test.cs文件的类型,它是c#编译器。在我的情况下,我不小心将其更改为嵌入式资源,并面临这个问题。