Visual Studio Test Runner 抱怨找不到 'xunit.core, Version=2.x.0'
Visual Studio Test Runner complains that it cannot find 'xunit.core, Version=2.x.0'
我正在尝试创建一个新的 PCL 库(以及一个新的 Windows 通用应用程序),并且我创建了一个新项目以开始使用 xUnit 编写我的单元测试。我添加了对 xunit
和 xunit.runner.visualstudio
的 nuget 引用。我正在使用 Visual Studio 2015 RTM,以及 Resharper 9.1,当我尝试 运行 或发现单元测试时,它们给我一个类似的错误。这是来自 visual studio:
------ Discover test started ------
[xUnit.net 00:00:00.2661814] Skipping: WinBlur.NewsBlurClient.Tests (could not find dependent assembly 'xunit.core, Version=2.1.0')
[xUnit.net 00:00:00.2235684] Skipping: WinBlur.NewsBlurClient.Tests (could not find dependent assembly 'xunit.core, Version=2.1.0')
========== Discover test finished: 0 found (0:00:00.6920785) ==========
此输出显示正在尝试使用 2.1 的最新测试版,但我也尝试了当前发行版 (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.core
和 xunit.assert
的依赖项,因此我自己添加了这些以查看是否有帮助,但没有成功。
xUnit.net 现在被现代 PCL 破坏了。
错误在于现代 PCL(或任何使用 project.json 而不是 packages.config 的 class 库)不复制引用的 DLL。这是 Visual Studio 对 project.json 和 class 库的支持中的一个错误,必须由 Microsoft 团队修复。
解决方法(至少对于某些库而言)是您可以将这些属性添加到您的项目文件中:
<PropertyGroup>
<CopyNuGetImplementations>true</CopyNuGetImplementations>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
之后,xunit 与 project.json 一起工作。至少对我来说。
我正在尝试创建一个新的 PCL 库(以及一个新的 Windows 通用应用程序),并且我创建了一个新项目以开始使用 xUnit 编写我的单元测试。我添加了对 xunit
和 xunit.runner.visualstudio
的 nuget 引用。我正在使用 Visual Studio 2015 RTM,以及 Resharper 9.1,当我尝试 运行 或发现单元测试时,它们给我一个类似的错误。这是来自 visual studio:
------ Discover test started ------
[xUnit.net 00:00:00.2661814] Skipping: WinBlur.NewsBlurClient.Tests (could not find dependent assembly 'xunit.core, Version=2.1.0')
[xUnit.net 00:00:00.2235684] Skipping: WinBlur.NewsBlurClient.Tests (could not find dependent assembly 'xunit.core, Version=2.1.0')
========== Discover test finished: 0 found (0:00:00.6920785) ==========
此输出显示正在尝试使用 2.1 的最新测试版,但我也尝试了当前发行版 (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.core
和 xunit.assert
的依赖项,因此我自己添加了这些以查看是否有帮助,但没有成功。
xUnit.net 现在被现代 PCL 破坏了。
错误在于现代 PCL(或任何使用 project.json 而不是 packages.config 的 class 库)不复制引用的 DLL。这是 Visual Studio 对 project.json 和 class 库的支持中的一个错误,必须由 Microsoft 团队修复。
解决方法(至少对于某些库而言)是您可以将这些属性添加到您的项目文件中:
<PropertyGroup>
<CopyNuGetImplementations>true</CopyNuGetImplementations>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
之后,xunit 与 project.json 一起工作。至少对我来说。