TestDriven.Net nunit.framework错误

时间:2009-10-02 01:34:57

标签: nunit resharper testdriven.net nbehave

我正在运行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有什么想法吗?

3 个答案:

答案 0 :(得分:3)

新语法nunit 2.5是否具体? Resharper 4.5(最新版本)不支持nunit 2.5。 Resharper出于许可原因不使用nunit程序集,所以即使你有nunint 2.5,Resharper也会使用它自己的版本(也许可能是2.4.8 ??)。更多信息:

http://www.jetbrains.net/devnet/thread/281286

答案 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