xamarin - 找不到针对 .NET Standard 1.4 xamarin 项目运行 nunit 的 nunit.framework

标签 xamarin .net-core nunit .net-standard visual-studio-mac

我有一个 .NET Standard 1.4 项目,用于代替 Xamarin 解决方案中的 PCL。我正在尝试添加一个单元测试项目。

我遵循了在那里找到的指南并执行了以下操作:

我添加了一个引用我的 .NET Standard 项目的 .NET Core 2.0 项目,并通过 NuGet 安装了以下内容:

  1. Microsoft.NET.Test.Sdk 15.5.0
  2. NUnit 3.9.0
  3. NUnit3TestAdapter 3.9.0

我添加了一个包含所有 NUnit 属性的 super 简单测试并运行它。

在 Visual Studio for Windows 上,测试使用 Resharper 测试运行器完美运行。但是,在 Visual Studio for Mac 上,使用内置运行程序时,我收到以下错误:

ERROR: System.IO.FileNotFoundException: Could not load file or assembly 'nunit.framework' or one of its dependencies File name: 'nunit.framework'

再多的谷歌搜索或摆弄都没有帮助。有人可以提出建议吗?

最佳答案

您的测试库不能是 .NET 标准库。它需要是 netcoreapp 或 net full 框架。因此,您需要将目标更改为 netcoreapp2.0 或类似 net461 的目标。或者,您可以使其成为多目标:

<TargetFrameworks>net461;netcoreapp2.0;netstandard2.0</TargetFrameworks>

这是由于 VSTest 和 Visual Studio 要求您的测试针对特定平台。仅使用 .NET Standard 库无法完成此操作。

如果您选择多目标,您在 Visual Studio 中的情况可能会有所不同。但是,命令行工具应该可以工作,您应该能够使用 dotnet test 轻松运行它,只需将其指向 csproj 文件进行单元测试。

这也记录在 NUnit 文档中:https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard

如果您更改为 Xunit 等其他框架,这些限制不会改变。

关于xamarin - 找不到针对 .NET Standard 1.4 xamarin 项目运行 nunit 的 nunit.framework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48709958/

相关文章:

.NET Core 中的 Azure 监视器

c# - 将模拟参数传递给模拟接口(interface)

c# - 使用 Selenium webdriver C# 为只读字段断言值

xamarin - 将 Xamarin.Forms 与 native 页面结合使用(Xamarin.iOS、UWP)

c# - 登录 Xamarin Forms 后更改页面

Xamarin 实时播放器

c# - 如何在 C# 中使用 Bouncy CaSTLe 将 X.509 v.3 谷歌证书添加到项目中

.NET Core 2.1 - 如何创建COM对象并生成*.tlb文件

asp.net - 更改 ASP.NET Core 应用程序中的目标框架版本

.net - .NET项目中单元测试和验收测试的实现