.net Xamarin.mac单元测试项目

.net Xamarin.mac单元测试项目,.net,cocoa,xamarin,xamarin.mac,.net,Cocoa,Xamarin,Xamarin.mac,我正在尝试为Xamarin Mac类库项目创建一个单元测试项目 .NET NUnit库项目它不起作用,因为我无法添加对我的Xamarin Mac类库的引用,所以我尝试创建一个新的Xamarin Mac类库项目,并向其中添加了NUnit Nuget包 <package id="NUnit" version="3.5.0" targetFramework="xamarinmac20" /> Mac需要大量的人手来将本机支持库放在正确的位置/加载所有内容,然后确保只调用一次NSAppli

我正在尝试为Xamarin Mac类库项目创建一个单元测试项目

.NET NUnit库项目它不起作用,因为我无法添加对我的Xamarin Mac类库的引用,所以我尝试创建一个新的Xamarin Mac类库项目,并向其中添加了NUnit Nuget包

<package id="NUnit" version="3.5.0" targetFramework="xamarinmac20" />

Mac需要大量的人手来将本机支持库放在正确的位置/加载所有内容,然后确保只调用一次NSApplication.Init,而不管测试的数量如何,依此类推

让nunit做到这一点绝非小事。我建议试试

使用GUI单元有两种方法:

  • 将程序集和GUI单元打包成一个包并运行它们的传统方式是:
  • 创建XM应用程序并直接包含GUI单元的不太标准的方法:

传统方法更容易集成到现有nunit工作流中,而较新的不太标准的方法更容易调试。

我遇到了同样的问题,最终将类库的目标框架从Xamarin.Mac Mobile Framework更改为Xamarin.Mac.NET 4.5 Framework


我不知道这是否适合您。

尝试将NUnit设置为2.6.3-在第一次测试后,它看起来正常工作,但随后我导入了要测试的Xamarin.mac引用,我遇到了另一个问题:System.IO.FileNotFoundException:无法加载文件或程序集或其依赖项之一。at(wrapper managed to native)System.Reflection.monmethod:InternalInvoke和输出二进制文件位于同一目录中。是否有其他人在针对XamarinMac20的项目上安装GuiUnit Nuget包时遇到问题?@Tylerflick Nuget可能只提供“桌面”变体。您可以使用Yes构建它,这也是一个很好的解决方法;)。但是对于Xamarin.Mac移动框架来说,唯一的解决方案是Chris Hamons所描述的。至少现在:)。
Stack trace:
  at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00014] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:2157 
  at System.Threading.Tasks.Task`1[TResult].GetResultCore (System.Boolean waitCompletionNotification) [0x00034] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/threading/Tasks/Future.cs:562 
  at System.Threading.Tasks.Task`1[TResult].get_Result () [0x00000] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/threading/Tasks/Future.cs:532 
  at MonoDevelop.UnitTesting.NUnit.NUnitAssemblyTestSuite.RunUnitTest (MonoDevelop.UnitTesting.UnitTest test, System.String suiteName, System.String pathName, System.String testName, MonoDevelop.UnitTesting.TestContext testContext) [0x0014a] in /Users/builder/data/lanes/3816/fa52f026/source/monodevelop/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitAssemblyTestSuite.cs:424