将NUnit与PCL结合使用

Mat*_*and 8 nunit visual-studio-2010 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".
Run Code Online (Sandbox Code Playgroud)

NUnit可以与PCL一起使用吗?该MVVM交叉教程似乎肯定来管理它.

我尝试创建一个单独的测试项目(常规类库),我可以添加NUnit,但是我似乎无法添加对我的PCL库(我要测试的那个)的引用,所以这样做帮助.

有任何想法吗?

wal*_*ark 3

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

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

此外,如果您想要对逻辑进行“真实”测试,则需要在要测试的设备上运行单元测试...然后是操作系统的每个版本...以及可能具有不同 CPU 的不同设备等等。你想走多远?

您提到您无法从“常规”测试库添加对 PCL 的引用...您会得到什么类型的错误?我一直在使用这种方法来测试我的 PCL 逻辑,它的工作方式就像一个魅力,也许它并不完美,但对于 1% 的情况,设备上的情况不同并且事情失败......我有一个记录异常的工具到服务器:-)