配置NUnit命令行以运行MonoTouch测试

时间:2010-10-06 21:58:50

标签: nunit xamarin.ios monodevelop

我的MonoTouch项目中有一个单元测试,我无法从MonoDevelop内部运行 - 它因“Unix传输错误”而失败。在网上浏览它看起来与NUnit测试运行器爆炸相关联,所以我想我会尝试使用命令行测试运行器。

我使用MonoDevelop的“Create Package”来构建和打包所有DLL,然后尝试使用nunit-console FooTest.dll运行我的测试。这会爆炸,但我很确定这不是因为它在MonoDevelop中爆炸的原因。我得到的错误信息是:

** (/Library/Frameworks/Mono.framework/Versions/2.6.7/lib/mono/1.0/nunit-  
console.exe:11174): WARNING **: The class System.Action`1 could not be loaded,
used in mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
File or assembly name FooTest, Version=0.0.0.0, Culture=neutral, 
PublicKeyToken=null, or one of its dependencies, was not found.

我对这里的一切都很陌生--NUnit,MonoTouch,MonoDevelop和.NET - 但看起来我需要以某种方式配置NUnit以使用MonoTouch运行时环境。是吗?如果是这样,我该怎么做?

2 个答案:

答案 0 :(得分:1)

没有一种方法可以将NUnit与MonoTouch一起使用。

  • 目前没有可在iPhone或模拟器上运行的NUnit测试运行器
  • 您可以使用Mono在Mac上运行NUnit测试MonoTouch dll,但不能使用这些程序集中的任何iOS库。这意味着您无法测试您的控制器,只能测试没有UIKit的后端模型逻辑。

对不起,我自己也感受到了同样的痛苦。如果解决方案出现,我会回发。

答案 1 :(得分:0)

将$ MONO_PATH设置为nunit库,以便能够运行nunit-console。在我的机器上,$ MONO_PATH声明是(在我的.profile文件中):

MONO_PATH = '/应用/β/ MonoDevelop.app /内容/的MacOS / LIB / MonoDevelop的/加载项/ NUnit的/:$ MONO_PATH'