Eliminate discovery exceptions from your inquiries; go to the output Window (Ctrl-Alt-O), then switch the show output from dropdown (Shift-Alt-S) to Tests and make sure there are no discovery exceptions
Test|Test settings|Default processor architecture can help if your tests are x86/x64 specific and discovery is triggering bittedness-related exceptions, i.e. not AnyCpu
As suggested in this answer(upvote it if the technique helps)
running the desktop console runner (instructions) can be a good cross check to eliminate other possibilities, e.g. mangled config files:-
> packages\xunit.runner.console.2.2.0\tools\xunit.console <tests.dll>
注意:xunit.runner.console包已经弃用了——当你在VS中得到一些东西时,你也可以让dotnet测试在CI上下文中运行它们
去阅读文档-它是全面的,最新的,包括故障排除信息和PRs:-
重要提示:如果您之前已经安装了xUnit.net Visual Studio Runner VSIX(扩展),则必须先卸载它。Visual Studio运行器现在只通过NuGet分发。要删除它,进入工具>扩展和更新。滚动到列表的底部,如果安装了xUnit.net,则卸载它。这将迫使您重新启动Visual Studio。
如果您在发现或运行测试时遇到问题,那么您可能是Visual Studio中已损坏的运行器缓存的受害者。要清除此缓存,请关闭VisualStudio的所有实例,然后删除文件夹%TEMP%\VisualStudioTestExplorerExtensions。还要确保你的项目只链接到Visual Studio运行程序NuGet包的单个版本。
下面的步骤对我很有效:
(只有当你怀疑你的机器上有严重的混乱时-通常更常见的情况是visual studio集成还没有安装)
做DEL %TEMP%\VisualStudioTestExplorerExtensions建议:-
PS> del $env:TEMP\VisualStudioTestExplorerExtensions
Install the NuGet Package xunit.runner.visualstudio in all test projects
Paket:
.paket\paket add nuget xunit.runner.visualstudio -i
You need to end up with the following in your paket.dependencies:
nuget xunit.runner.visualstudio version_in_path: true
Note the version_in_path: true bit is important
Nuget: Go to Package Manager Console (Alt-T,N,O) and
Install-Package xunit.runner.visualstudio
Rebuild to make sure xunit.runner ends up in the output dir
Close Test Explorer <- this was the missing bit for me
Re-open Test Explorer (Alt-S,W,T)
Run All tests (Ctrl R, A)