无法在Visual Studio 2017上运行Xunit测试

时间:2018-03-27 09:52:37

标签: visual-studio unit-testing testing xunit test-runner

无法在我的Visual Studio 2017上运行所有XUnit测试。Version 15.6.4

可以在TestExploer中查看它们,当我从那里运行它们时,我得到这样的结果:

[27.03.2018 12:21:46 Informational] ------ Load Playlist started ------
[27.03.2018 12:21:46 Informational] ========== Load Playlist finished 
(0:00:00,0215566) ==========
[27.03.2018 12:22:27 Informational] Executing test method 'Lebara.Remittance.Test.ServiceImplementation.RiskEngineServiceTest.ShouldTest'
[27.03.2018 12:22:27 Informational] ------ Run test started ------
[27.03.2018 12:22:29 Warning] Multiple test adapters with the same uri 
'executor://xunit/VsTestRunner2' were found. Ignoring adapter 
'Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner'. Please uninstall the 
conflicting adapter(s) to avoid this warning.
[27.03.2018 12:22:29 Warning] [xUnit.net 00:00:00.0209459] Skipping: 
Lebara.Remittance.Test (could not find dependent assembly 
'Microsoft.Extensions.DependencyModel, Version=1.1.0')
[27.03.2018 12:22:29 Warning] No test is available in C:\ReposNew\Lebara.Remittance\Lebara.Remittance\Lebara.Remittance.Test\bin\Debug\Lebara.Remittance.Test.dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
[27.03.2018 12:22:29 Informational] ========== Run test finished: 0 run 
(0:00:02,1543479) ==========
[27.03.2018 12:34:19 Informational] Executing test method 'Lebara.Remittance.Test.ServiceImplementation.RiskEngineServiceTest.ShouldTest'
[27.03.2018 12:34:19 Informational] ------ Run test started ------
[27.03.2018 12:34:20 Warning] Multiple test adapters with the same uri 
'executor://xunit/VsTestRunner2' were found. Ignoring adapter 
'Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner'. Please uninstall the 
conflicting adapter(s) to avoid this warning.
[27.03.2018 12:34:20 Warning] [xUnit.net 00:00:00.0200861] Skipping: 
Lebara.Remittance.Test (could not find dependent assembly 
'Microsoft.Extensions.DependencyModel, Version=1.1.0')
[27.03.2018 12:34:20 Warning] No test is available in C:\ReposNew\Lebara.Remittance\Lebara.Remittance\Lebara.Remittance.Test\bin\Debug\Lebara.Remittance.Test.dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
[27.03.2018 12:34:20 Informational] ========== Run test finished: 0 run 
(0:00:00,7088116) ==========

我尝试删除%TEMP%\VisualStudioTestExplorerExtensions - 没有任何帮助。

事情是,几天前我可以运行它们。我没有改变一件事。只是不知道发生了什么。

我也有这个警告

 [27.03.2018 12:22:29 Warning] Multiple test adapters with the same uri 
 'executor://xunit/VsTestRunner2' were found. Ignoring adapter 
 'Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner'. Please uninstall the 
 conflicting adapter(s) to avoid this warning.
 [27.03.2018 12:22:29 Warning] [xUnit.net 00:00:00.0209459] Skipping: 
 Lebara.Remittance.Test (could not find dependent assembly 
 'Microsoft.Extensions.DependencyModel, Version=1.1.0')

3 个答案:

答案 0 :(得分:8)

我在使用xUnit时遇到问题。一些重要的事情:

1)确保已启用“ Microsoft Visual Studio测试平台”扩展

2)确保“测试=>测试设置=>默认处理器体系结构”与您的版本匹配。

3)安装nuget软件包'xunit.runner.visualstudio'

答案 1 :(得分:5)

如果您使用的是.NET Core或ASP.NET Core,那么请从xunit(https://xunit.github.io/docs/getting-started-dotnet-core.html):

  

使用Visual Studio运行测试

     

如果您在发现或运行测试时遇到问题,那么您可能会遇到问题   Visual Studio中损坏的运行器缓存的受害者。要清除这一点   缓存,关闭所有Visual Studio实例,然后删除   文件夹%TEMP%\ VisualStudioTestExplorerExtensions。还要确保你的   解决方案仅链接到单个版本的Visual Studio   转轮NuGet包(xunit.runner.visualstudio)。

     

如果您有Visual Studio社区(或Visual的付费版本)   Studio),您可以在Visual Studio中运行xUnit.net测试   内置测试运行器(名为Test Explorer)。不幸的是,这样做   不包括Visual Studio的Express版本(你应该升级到   取而代之的是免费的社区版。

     

在解决方案资源管理器中右键单击项目,然后选择“管理”   NuGet包。您需要安装两个包:

xunit.runner.visualstudio (version 2.3.1 or later)
Microsoft.NET.Test.Sdk (version 15.0.0 or later; we recommend using whatever the latest RTM build is)
     

确保可以看到测试资源管理器(转到测试> Windows>测试   资源管理器)。每次构建项目时,跑步者都会发现   在您的项目中进行单元测试经过一段时间的发现,你应该   查看已发现的测试列表:

     

单击“测试资源管理器”窗口中的“全部运行”链接,您应该看到   测试运行时,测试资源管理器窗口中的结果会更新:

     

您可以单击失败的测试以查看失败消息,然后单击   堆栈跟踪。您可以单击堆栈跟踪线来接收您   直接到失败的代码行。

还提到

  

针对多个目标运行测试

(如果某些项目以Core为目标,其他项目以.NET 4.5为目标。)

另一种可能性:

确保使用xunit 2.3.0 +

答案 2 :(得分:4)

几周前,当我将xUnit升级到2.4.0-beta.1时,我遇到了这个问题。 Visual Studio的测试资源管理器选择两个 xUnit测试适配器,但上述消息失败。

不幸的是,这不是upgrading to the latest VS update的简单问题,因为我已经在运行最新版本。我也在使用最新版本的Microsoft.NET.Test.Sdk包。降级到最新的稳定版本2.3.1也不起作用,VS 仍在选择两个适配器。

最后,我必须在xUnit的解决方案的包文件夹 NuGet的缓存中手动删除特定于版本的%userprofile%\.nuget\packages文件夹。

Managing the global packages, cache, and temp folders中的Clearing local folders也应该有所帮助。如果您有快速的互联网连接,您可能想尝试“nuke it”命令:

nuget locals all -clear