我正在运行TestDriven.Net 2.23版,NBehave版本0.4.0.133和nunit版本单元2.5.0.9122。我也在运行最新版本的Resharper。这是一段测试代码:
var address = new Address
{
ActiveYN = true,
Address1 = "555 Main Street",
Address2 = "Apt 2",
City = city,
ModifiedBy = contact,
ModifiedDt = clockStub.GetCurrentTime(),
ZipCode = "76132",
Id = 9
};
Assert.AreEqual(city, address.City);
如果我运行Resharper测试运行器并运行TestDriven.Net,则测试通过。现在,如果我将测试语法更改为:
var address = new Address
{
ActiveYN = true,
Address1 = "555 Main Street",
Address2 = "Apt 2",
City = city,
ModifiedBy = contact,
ModifiedDt = clockStub.GetCurrentTime(),
ZipCode = "76132",
Id = 9
};
address.City.ShouldEqual(city);
如果我在Resharper测试运行器中运行测试,我没有错误通过。如果我使用TestDriven.Net运行,我得到:
failed: System.IO.FileLoadException : Could not load file or assembly 'nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
这是一台新机器,我从未跑过nunit 2.4.8有什么想法吗?
答案 0 :(得分:3)
新语法nunit 2.5是否具体? Resharper 4.5(最新版本)不支持nunit 2.5。 Resharper出于许可原因不使用nunit程序集,所以即使你有nunint 2.5,Resharper也会使用它自己的版本(也许可能是2.4.8 ??)。更多信息:
答案 1 :(得分:0)
如果您想使用最新最好的NUnit框架并支持新的ExpectedExceptionAttribute,您应该安装Gallio框架并在resharper中使用Gallio TestRunner。
Gallio充当您的单元测试的包装器,无需更改任何现有测试。但随着它自带的自定义Resharper插件,你将Resharper和Nunit之间的依赖关系转移到了Gallio和Nunit,根据我的经验,Gallio比resharper更新(和开源,所以你甚至可以滚动)你想要的,只需要很少的努力,你自己的NUnit v42.1适配器。
www.gallio.org
干杯, 弗洛里安
答案 2 :(得分:0)
您可以使用名为Should的库编写框架无关的断言。它还有一个非常好的流利语法,如果你喜欢流畅的界面,可以使用它。我有一篇与之相关的博客文章。
http://nileshgule.blogspot.com/2010/11/use-should-assertion-library-to-write.html