Visual Studio Test Runner抱怨它无法找到xunit.core,Version = 2.x.0'

时间:2015-08-07 03:15:29

标签: visual-studio-2015 xunit xunit.net

我正在尝试创建一个新的PCL库(以及一个新的Windows Universal应用程序),并且我已经创建了一个新项目来开始使用xUnit编写单元测试。我已经添加了对xunit以及xunit.runner.visualstudio的nuget引用。我使用的是Visual Studio 2015 RTM以及Resharper 9.1,在尝试运行或发现单元测试时,他们给我一个类似的错误。这是来自visual studio:

  

------发现测试开始------

     

[xUnit.net 00:00:00.2661814]跳过:WinBlur.NewsBlurClient.Tests(无法找到依赖程序集' xunit.core,Version = 2.1.0')

     

[xUnit.net 00:00:00.2235684]跳过:WinBlur.NewsBlurClient.Tests(无法找到依赖程序集' xunit.core,Version = 2.1.0')

     

==========发现测试结束:0找到(0:00:00.6920785)==========

此输出显示尝试使用2.1的最新beta版本,但我也尝试了当前发行版本(2.0.0)并获得了相同的结果。

这是我的project.json文件:

{
  "supports": {
    "net46.app": {},
    "uwp.10.0.app": {}
  },
  "dependencies": {
    "Microsoft.NETCore": "5.0.0",
    "Microsoft.NETCore.Portable.Compatibility": "1.0.0",
    "xunit": "2.0.0",
    "xunit.core": "2.0.0",
    "xunit.assert":  "2.0.0",
    "xunit.runner.visualstudio": "2.0.1"
  },
  "frameworks": {
    "dotnet": {
      "imports": "portable-net452+win81"
    }
  }
}

当我将nuget引用添加到xunit时,它最初没有为xunit.corexunit.assert添加依赖项,所以我自己添加了它们以查看它是否有帮助,但没有运气。

2 个答案:

答案 0 :(得分:3)

解决方法(至少对于某些库)是您可以将这些属性添加到项目文件中:

<PropertyGroup>
    <CopyNuGetImplementations>true</CopyNuGetImplementations>
    <PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>

之后,xunit与project.json一起使用。至少对我而言。

答案 1 :(得分:2)

xUnit.net现在被现代PCL破坏了。

错误是现代PCL(或任何使用project.json而不是packages.config的类库)不会复制引用的DLL。这是Visual Studio对带有类库的project.json的支持中的一个错误,必须由Microsoft团队修复。