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


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

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


当前回答

当您将VS2015移动到VS2017以在测试资源管理器中发现测试时,您需要更新您的所有包。

其他回答

我不知道你们中的一些人是否也使用JustMock,但我不得不在VS 2017中禁用分析器,以便测试检测工作。

确保您的测试类是公共的。

在我的例子中,我在解决方案中有2个不同的测试项目。可以找到项目1的测试,但是项目2的测试找不到。我发现,首先卸载测试项目1,然后关闭VS >清理我的临时文件>重新打开解决方案>重建,允许VS发现我的项目2测试。

我假设两个测试项目之间一定有冲突,这是让我在几分钟内启动并运行的最快方法。问题可以稍后解决:)。

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

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

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

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