我们喜欢使用TTD,对于Xamarin,我们使用NUnit。在我们的项目中,我们有一个PCL和一个monodroid/montouch项目。我们还有iOS和Android的集成测试项目(使用NUnit,但使用特殊的testrunner)。
我的问题是,我们用于TTD的真正单元测试(不是在模拟器中执行的快速单元测试)在我们使用LINQ扩展方法时不能与PCL一起工作(这是最重要的),例如
Enumerable.Any()我们得到的异常总是:
could not load file or assembly system.core 2.0.5.0如果我们不使用linq方法,一切都会正常工作...也许作为信息:在集成测试项目中,我们可以毫无问题地执行这些测试,使用我们的无LINQ扩展。
PCL看起来像这样:
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>XYLib</RootNamespace>
<AssemblyName>XYLib</AssemblyName>
<TargetFrameworkProfile>Profile136</TargetFrameworkProfile>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>这个单元测试项目是一个Xamarin-Studio的"NUnit库项目“(我们还尝试了很多其他类型的项目,但都没有成功)。
我花了很多时间在谷歌上搜索这个问题。根据这篇文章,它应该这样工作:How to run unit tests for Xamarin library projects (iOS and Android)?
有人能帮我吗?或者这是不可能的?
发布于 2015-03-08 05:57:57
当您在单元测试代码或单元测试调用的PCL代码中使用LINQ扩展时,单元测试会失败吗?
如果您从PCL返回一个延迟的LINQ查询,然后从实际上可能是不同版本的LINQ应用LINQ扩展,我可以看到哪里可能存在问题。在这种情况下,可以尝试使用.ToList()在应用特定于单元测试的LINQ代码之前强制执行查询。
https://stackoverflow.com/questions/23277298
复制相似问题