我有一个 .NET Standard 1.4 项目,用于代替 Xamarin 解决方案中的 PCL。我正在尝试添加一个单元测试项目。
我遵循了在那里找到的指南并执行了以下操作:
我添加了一个引用我的 .NET Standard 项目的 .NET Core 2.0 项目,并通过 NuGet 安装了以下内容:
- Microsoft.NET.Test.Sdk 15.5.0
- NUnit 3.9.0
- 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/