Xunit单元测试不会运行

时间:2017-12-19 20:34:34

标签: c# .net windows-10 visual-studio-2017 xunit

我完全坚持这个问题。所以我的团队在服务测试项目中有一个单元测试项目。测试在测试资源管理器窗格中发现,但是当我尝试运行测试时,我会收到以下错误:

  

'具有相同uri的多个测试适配器   '执行://的xUnit / VsTestRunner2'被找到。忽略适配器   ' Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner&#39 ;.请卸载   冲突的适配器,以避免此警告'

     

' [xUnit.net 00:00:00.0251250]跳绳:(找不到   依赖汇编&Microsoft; Microsoft.Extensions.DependencyModel,   版本= 1.1.0')'

     

' C:\中没有可用的测试。确保测试   发现者&执行人员已注册,平台和框架版本   设置是合适的,然后重试。'

背景信息:

  • Xunit 2.2.0
  • Visual Studio 15.5.2
  • Windows 10 1709 Build: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的最新更新,而它们只是一个或两个更新。

有没有人知道解决方法?

8 个答案:

答案 0 :(得分:15)

我有同样的问题,我通过将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缓存并在更新后使用以前的版本)。

不确定这三件事中的一件或它们的组合是否已经修好了。

答案 1 :(得分:9)

安装或更新&#34; xunit.runner.visualstudio&#34;包给我做了伎俩。在那之前,它没有使用框架462。

答案 2 :(得分:2)

我遇到了同样的问题,但我已经安装了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中并具有这些最低版本。

答案 3 :(得分:1)

我遇到了与您类似的问题,说could not find dependent assembly;实际上,该程序集已经存在,并且可供xUnit VS运行程序使用。但是,实际问题是,我将Visual Studio设置为默认使用32bit测试运行程序。找不到的“依赖程序集”与使用的xUnit测试运行程序只是一个不同的处理器体系结构。

要修复问题,如here所述,请从Visual Studio菜单中转到Test -> Test Settings -> Default Processor Architecture,如果使用的是X64程序集或{{ 1}}(如果使用64bit程序集)。 xUnit VS Runner给出的错误非常容易误导您尝试调试此问题。

我在新计算机上安装Visual Studio时看到的此问题。这些测试将在Visual Studio的桌面机上运行,​​而不是在笔记本电脑上。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

如果您有一个项目在同一个 Visual Studio(或任何其他 Visual Studio 实例)上运行,请停止它。虽然我知道这很尴尬,但它解决了问题。

答案 6 :(得分:-1)

我有同样的问题,我安装在 nuget 包下面

 <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" />
  <PackageReference Include="xunit" Version="2.4.1" />
  <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">

答案 7 :(得分:-1)

最近在 VS 2019 上遇到了这个问题。 安装 VS.QualityTools.UnitTestFramework nuget 解决了这个问题