我们喜欢使用TTD和Xamarin,我们使用NUnit。在我们的项目中,我们有一个PCL和一个monodroid / montouch项目。我们还有iOS和Android集成测试项目(使用NUnit但使用特殊的testrunner)。
我的问题是,一旦我们使用LINQ-,我们用于TTD的真实单元测试(在模拟器中不执行的快速单元测试)不能与PCL一起工作(并且它是最重要的)扩展方法,例如
Enumerable.Any()
我们得到的例外总是:
could not load file or assembly system.core 2.0.5.0
如果我们不使用linq方法,一切正常......也许作为信息:在integrationtest-projects中我们可以毫无问题地执行这些测试,没有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&#34; NUnit图书馆项目&#34; (我们还尝试了很多其他项目类型而没有成功)。
我花了很多时间来搜索这个问题。根据这篇文章,它应该以这种方式工作:How to run unit tests for Xamarin library projects (iOS and Android)?
有人可以帮我这个吗?或者是不可能的?
答案 0 :(得分:0)
在单元测试代码中使用LINQ扩展或单元测试调用的PCL代码中,单元测试是否会失败?
如果您从PCL返回延迟的LINQ查询,然后从实际上可能是LINQ的不同版本应用LINQ扩展,我可以看到可能存在问题的地方。在这种情况下,请尝试使用.ToList()在应用特定于单元测试的LINQ代码之前强制执行查询。