Der*_*ter 1 c# nunit .net-4.0 visual-studio-2010
我一直在阅读并试图使用NUnit,到目前为止,我正在阅读的书籍/文章说,在NUnit的bin文件夹中,应该有nunit.framework.dll,我需要在我的项目中引用它.
但奇怪的是,没有nunit.framework.dll,但有两个文件夹:net-1.1和net-2.0.
我没有使用,我在使用.NET 4.0的VS 2010中工作.
NUnit已被弃用吗?
为什么他们只为旧版本的.NET提供了两个文件夹?
首先,NUnit不会被弃用,并且已成为事实上的.NET主要单元测试框架.
但是,作为测试框架,它不涉及编译表达式,不使用LINQ或动态语言结构,并且在其当前实现中依赖于甚至在.NET 1.0中找到的功能,例如属性.
但是,随着.NET 2.0的发布,出现了一个新的CLR.旧的.NET 1.1程序集必须在应用程序配置文件中"重新映射"才能被新的CLR选中,人们会因为使用为.NET 1.1编译的库运行.NET 2.0应用程序而遇到问题.
当.NET 3.0和.NET 3.5问世时,他们没有携带新的CLR.他们两个仍然使用.NET 2.0 CLR,只添加一些库(WPF,WCF)和语言功能(如LINQ).因为这些版本不会对CLR进行更改,所以为它们分发单独的库版本绝对没有意义,因为二进制文件将保持完全相同,引用mscorlib.NET 2.0 中找到的版本.
我不确定.NET 4.0,如果它需要输入App.config正确加载.NET 2.0编译的NUnit库,所以我愿意对此发表评论.
来自NUnit博客的报价解释了单独的1.1和2.0包装:
那么,如果可以在任何版本的CLR下运行原始的net-1.1版本的NUnit,为什么我们需要单独的.Net 2.0版本?严格来说,我们没有.但由于以下几个原因,它很方便:
人们似乎在让NUnit在适当的框架版本下运行时遇到了过多的麻烦.拥有特殊版本将使他们的生活更轻松,更不用说我的生活,因为我必须回答所有问题.
最终,我们需要一个单独的版本.人们不可避免地会在测试中开始使用仅限2.0的功能.想象一下可以为空的值的断言.或者是一般的TestFixture类.我们将能够处理来自使用.Net 1.1构建的NUnit中的一些内容,但是其中许多要么需要.Net 2.0,要么更容易用.Net 2.0实现.
目前,.Net 2.0版本的功能与.Net 1.1版本完全相同.我们已经反映了这一点,现在不改变版本编号.那些使用一个或另一个框架版本的人可以下载构建的NUnit副本以使用该版本,而不会遗漏任何功能.使用这两个版本的用户可以选择并排安装两个版本 - 只需要注意您引用的版本 - 或者使用命令行/框架选项即时选择正确的版本.
(突出显示是我的)
然而,它很久以前(2006年11月)发布了,所以现在版本可能会有所不同.
| 归档时间: |
|
| 查看次数: |
4074 次 |
| 最近记录: |