8

我似乎遇到了各种各样的问题,试图让 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交叉教程似乎可以管理它。

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

有任何想法吗?

4

1 回答 1

3

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

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

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

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

于 2014-05-28T12:03:01.923 回答