将NUnit与PCL结合使用

时间:2013-06-14 15:27:47

标签: visual-studio-2010 nunit portable-class-library

我似乎遇到各种各样的问题,试图让NUint与PCL库玩得很好。我的PCL库面向.NET 4.5,Silverlight 4及更高版本,Windows Phone 7.5,Windows Store,Mono for Android和MonoTouch(最后两个与Xamarin)。但是,当我尝试通过NuGet将NUnit添加到项目时,看起来它被添加(nunit.framework被添加到引用中)但是NUnit命名空间不可用。如果我尝试添加using NUnit.Framework,Visual Studio会对其进行强调,如果我尝试构建,则会在此警告中找不到有关NUnit命名空间的错误:

Warning 2   The primary reference "nunit.framework" could not be resolved because it has an indirect dependency on the framework assembly "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which could not be resolved in the currently targeted framework. ".NETPortable,Version=v4.0,Profile=Profile104". To resolve this problem, either remove the reference "nunit.framework" or retarget your application to a framework version which contains "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".

NUnit可以与PCL一起使用吗? mvvm cross教程肯定会管理它。

我尝试创建一个单独的测试项目(常规类库),我可以添加NUnit,但是我似乎无法添加对我的PCL库(我要测试的那个)的引用,所以这也无济于事。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这个论点存在缺陷,但无论如何我都会这样做......

继续在.net 4.5库中编写并运行您的单元测试,并从那里引用您的PCL库。该单元的目标是测试它以测试逻辑。虽然对于不同的PCL目标版本而言,某些事情可能会有所不同。 (方法没有实现等),我怀疑以这种方式测试你的代码将覆盖99%的情况。

此外,如果你想要一个真实的'测试逻辑,您需要让您的单元测试在您要测试的设备上运行......然后是每个版本的操作系统......以及可能不同的设备和不同的CPU等等。你想去吗?

您提到您无法通过常规'添加对您的PCL的引用。测试库...你得到什么样的错误?我一直在使用这种方法来测试我的PCL逻辑,它就像一个魅力,也许它并不完美,但对于1%的情况,设备上的东西不同而且事情都失败了......我有一个例外情报到服务器  : - )