我在Xamarin解决方案中使用了一个用于PCL的.NET Standard 1.4项目。我正在尝试添加一个单元测试项目。
我遵循了我可以找到的指导方针并执行以下操作:
我添加了一个引用我的.NET Standard项目的.NET Core 2.0项目,并通过NuGet安装了以下内容:
我添加了一个包含所有NUnit属性的超级简单测试并运行它。
在Visual Studio for Windows上,使用Resharper测试运行器完成测试。但是在 Visual Studio for Mac 上,使用内置的跑步者,我得到以下错误:
错误:System.IO.FileNotFoundException:无法加载文件或 装配' nunit.framework'或其依赖项之一文件名: ' nunit.framework'
没有任何谷歌搜索或小提琴有帮助。任何人都可以提出一些建议吗?
答案 0 :(得分:1)
您的测试库不能是.NET标准库。它需要是netcoreapp或net full framework。因此,您需要将目标更改为netcoreapp2.0
或net461
之类的内容。或者,您可以将其设为多目标:
<TargetFrameworks>net461;netcoreapp2.0;netstandard2.0</TargetFrameworks>
这是由于VSTest和Visual Studio要求您的测试针对特定平台。仅使用.NET Standard库无法完成此操作。
如果您选择多目标,则您的milage可能会因Visual Studio而异。但是,命令行工具应该可以工作,您应该可以使用dotnet test
非常轻松地运行它,只需将其指向单元测试的csproj
文件即可。
NUnit文档中也记录了这一点:https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard
如果您更改为Xunit等其他框架,这些限制不会改变。
答案 1 :(得分:0)
这是VS Mac 7.3.4 beta中的一个错误,MS正在修复它。
答案 2 :(得分:0)
尝试手动加载 nunit.framework 程序集并将其引用到测试项目。