我一直在阅读并尝试使用NUnit,到目前为止,我正在阅读的书籍/文章都说在NUnit的bin文件夹中应该有nunit.framework.dll,我需要在我的项目中引用它。
但奇怪的是,没有nunit.framework.dll,但有两个文件夹: net-1.1和net-2.0。
我两个都不用,我用的是VS2010和.NET 4.0。
NUnit是否已弃用?
为什么他们只有两个文件夹来存放旧版本的.NET?
发布于 2011-05-25 05:49:42
一开始,NUnit绝不会被弃用,它已经成为事实上的.NET的主要单元测试框架。
然而,作为一个测试框架,它不涉及编译表达式,不使用LINQ或动态语言构造,并且在其当前实现中依赖于甚至在.NET 1.0中也可以找到的功能,例如attributes。
然而,随着CLR2.0的发布,新的.NET发布了。旧的CLR1.1程序集必须在应用程序配置文件中“重新映射”,才能被新的.NET拾取,并且人们在使用为.NET 1.1编译的库运行他们的.NET 2.0应用程序时会遇到问题。
当CLR3.0和.NET 3.5问世时,他们并没有随身携带新的.NET。它们仍然使用LINQ2.0CLR,只是添加了一些库( .NET,WCF)和语言特性(比如LINQ.因为这些发布不会给CLR带来变化,所以为它们分发单独的库版本是绝对没有意义的,因为二进制文件将保持完全相同,引用了.NET 2.0中的mscorlib版本。
我不确定.NET 4.0,以及它是否需要进入App.config才能正确加载.NET 2.0编译的NUnit库,所以我对此持开放态度。
有一句来自NUnit blog的话解释了单独的1.1和2.0打包:
所以,如果可以在任何版本的
下运行NUnit的原始版本,那么为什么我们还需要一个单独的.Net 2.0版本呢?严格地说,我们不需要。但它很方便,有几个原因:
目前,.Net 2.0构建在功能上与.Net 1.1构建相同。我们已经在暂时不更改版本编号中反映了这一点。那些专门使用一个或另一个框架版本的人可以下载为使用该版本而构建的NUnit副本,而不会错过任何功能。使用这两个版本的用户可以选择同时安装两个版本--只是要注意引用的是哪一个--或者使用命令行/framework选项动态选择正确的版本。
(高亮显示是我的)
然而,它是在很久以前(2006年11月)发布的,所以到目前为止,版本可能确实不同。
发布于 2011-05-25 05:41:26
转到http://nuget.org/并安装NuGet。然后按照有关如何将NuGet包添加到项目的说明进行操作。然后搜索NUnit,它将自动为您的项目导入正确的dll。
顺便说一句,在DLL4.0中,你可以使用任何高于2.0的.NET,所以你可以在你的项目中使用NUnit .NET 2.0程序集。它将自动加载并与CLR v4一起运行,以及您自己的程序集,因此没有性能损失。
发布于 2011-05-25 05:45:52
net-2.0版本是使用.NET 2.0构建的,但它可以在.NET 4.0下成功运行(它的.exe.config文件中有启用此功能的条目)。它将成功运行使用.NET 4.0构建的测试。
我同意,如果他们提供的二进制文件明显是最新的,那就不会那么令人困惑了,但在技术上没有必要。使用net-2.0文件夹;它应该适合您。
https://stackoverflow.com/questions/6117183
复制相似问题