Xunit单元测试将无法运行

问题描述 投票:24回答:5

我完全卡在这个问题上。我的团队在一个服务测试项目中有一个单元测试项目。测试是在测试资源管理器窗格中发现的,但是当我尝试运行测试时,我得到了这些错误。

'发现多个测试适配器具有相同的 uri 'executor:/xunitVsTestRunner2' 。忽略适配器'Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner'。请卸载冲突的适配器以避免此警告。

'[xUnit.net 00:00:00.0251250] Skipping: (无法找到依赖性程序集'Microsoft.Extensions.DependencyModel, Version=1.1.0')' 。

'C:\中没有测试可用。确保测试发现者&执行者已注册,平台&框架版本设置合适,再试一次'。

上下文信息。

  • Xunit 2.2.0
  • Visual Studio 15.5.2
  • Windows 10 1709 Build.Xunit 2.2.0 Visual Studio 15.5.2 16299.125

我的测试项目project.json。

{
   "version": "1.0.0-*",
   "testRunner": "xunit",
    "dependencies": {
       "dotnet-test-xunit": "2.2.0-preview2-build1029",
       "Microsoft.AspNetCore.Mvc.ViewFeatures": "1.1.3",
       "Microsoft.DiaSymReader": "1.0.8",
       "Microsoft.DiaSymReader.Native": "1.4.1",
       "Microsoft.Extensions.Logging.Abstractions": "1.1.2",
       "Microsoft.Extensions.Testing.Abstractions": "1.0.0-preview2-003121",
       "Newtonsoft.Json": "9.0.1",
       "WebServices": "1.0.0-*",
       "xunit": "2.2.0",
       "xunit.abstractions": "2.0.1",
       "xunit.assert": "2.2.0",
       "xunit.core": "2.2.0",
       "xunit.extensibility.core": "2.2.0",
       "xunit.extensibility.execution": "2.2.0",
       "xunit.runner.utility": "2.2.0"
   },
   "frameworks": {
    "net461": {
        "dependencies": {
            "Microsoft.NETCore.Platforms": "1.1.0"
        }
    }
}

奇怪的是,它对我的团队成员有效。但我却不行。我们的环境差异在于:Windows和Visual Studio的最新更新,而他们落后一两个更新。

有人知道有什么解决方法吗?

c# .net windows-10 visual-studio-2017 xunit
5个回答
21
投票

我有同样的问题,我通过将Visual Studio 2017从15.5.2更新到15.5.4并将我的测试项目引用从更新。

<ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0-preview-20170628-02" />
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>

更新为:

<ItemGroup>
    <PackageReference Include="xunit" Version="2.3.1" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
</ItemGroup>

并重新启动Visual Studio(显然VS会缓存并使用以前的版本,即使你已经更新了)。

不知道是这3件事中的一件还是它们的组合解决了问题。


27
投票

安装或更新 "xunit.runner.visualstudio "包对我来说是个好办法。 在这之前,它不能与框架462一起工作。


4
投票

我遇到了同样的问题,但我已经安装了Visual Studio 2017 15.5.4。为了使其工作,我更新了所有的 xunit 相关的引用,现在我的.csproj相关引用看起来是这样的。

<ItemGroup>
   <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
   <PackageReference Include="xunit" Version="2.3.1" />
   <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>

我不太确定是什么地方出了问题,但我的建议是确保这些参考资料在csproj中,并且有这些最低版本。


2
投票

我的问题和你的类似,指出 could not find dependent assembly事实上,该程序集是存在的,并且可以被xUnit VS运行器使用。然而,实际的问题是,我把Visual Studio设置成使用了 "XUnit"。32bit 测试运行程序默认为xUnit。它找不到的 "依赖性程序集 "只是因为使用的处理器架构与xUnit测试运行程序不同。

为了解决这个问题,如前所述 此处在Visual Studio菜单中,进入 Test -> Test Settings -> Default Processor Architecture 并将其设为 X64 如果你正在使用 64bit 组件,或 X86 如果你正在使用 32bit 汇编。xUnit VS runner给出的错误是非常具有误导性的,试图调试这个问题。

这个问题我是在新机器上安装Visual Studio时看到的。测试可以在我的台式机上的Visual Studio中运行,但在我的笔记本电脑上却不能。


0
投票

关闭并重新打开Visual Studio对我有效。

© www.soinside.com 2019 - 2024. All rights reserved.