Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 单安卓。单元测试框架_Android_Unit Testing_Mono_Xamarin.android - Fatal编程技术网

Android 单安卓。单元测试框架

Android 单安卓。单元测试框架,android,unit-testing,mono,xamarin.android,Android,Unit Testing,Mono,Xamarin.android,是否有一些单元测试框架支持mono android应用程序? 我已经尝试了默认的Visual Studio测试框架和NUnit框架,但没有成功。 最后一次尝试:我创建了Mono Android类库,引用了nunit.framework,编写了测试。但当我尝试启动它们时,我遇到了一个例外: System.TypeLoadException: Could not load type 'System.Runtime.Versioning.TargetFrameworkAttribute' from a

是否有一些单元测试框架支持mono android应用程序? 我已经尝试了默认的Visual Studio测试框架和NUnit框架,但没有成功。
最后一次尝试:我创建了Mono Android类库,引用了nunit.framework,编写了测试。但当我尝试启动它们时,我遇到了一个例外:

System.TypeLoadException: Could not load type 'System.Runtime.Versioning.TargetFrameworkAttribute' from assembly 'mscorlib, Version=2.0.0.0'
堆栈跟踪:

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at NUnit.Core.TestRunner.Load(TestPackage package)
   at NUnit.Util.TestDomain.Load(TestPackage package)
   at NUnit.Util.TestLoader.LoadTest(String testName)
我确信这是因为mono android程序集与其他程序集不兼容…
所以我的问题是:如何让它发挥作用?或者可能还有其他针对mono-android应用程序的单元测试框架

UPD:此问题的解决方法。
因为我只需要测试独立于平台的模型,所以我刚刚创建了单独的“代理”Windows类库项目,并将Mono for Android类库中的模型类链接添加到该项目中(项目=>添加现有项…=>[选择应添加为链接的所有文件]=>添加为链接)。

因此,我收到了与任何单元测试框架程序集兼容的程序集,该程序集由应测试的类组成。

如果您想引用Mono for Android、MonoTouch或Silverlight应用程序中的程序集,则必须使用也已根据同一配置文件编译的程序集


这是2.0.5.0配置文件。

如果您希望在设备(或模拟器内部)上运行单元测试,那么您应该看看Mono for Android testrunnerfor(0.6)。它与(iOS)类似(UI和NUnitLite版本相同),即使(目前)在功能方面有点落后(没有网络日志记录)


免责声明:我编写了runner

如果您希望在Mono for Android下运行Visual Studio单元测试,我已经为此编写了一个兼容层和一个GUI

看看


是的。这就是为什么我们不能在Silverlight等中使用标准的.NET程序集的原因。我知道不可能同时使用nunit和mono.android,因为引用程序集的版本不同。所以我的问题是:也许有人面临同样的问题并解决了它。目前,我正在尝试使用mscorlibv2.0.5.0重新编译nunit,这可能会解决一个问题。如果失败了,我将在mac上玩mono。@NicoGranelli:我成功地解决了这个问题。我将很快用已接受的解决方案更新我的帖子@jpobst:btw,感谢您在github上提供了一个非常好的mono-android示例。@NicoGranelli我已经用变通方法更新了我的帖子。@Igor:很有趣,但无法通过谷歌找到您的帖子。你能发布链接吗?谢谢。@Thomas Weller,看看这篇文章中的问题。解决方法在UPD之后描述