TestDriven.Net nunit.framework错误

TestDriven.Net nunit.framework错误,nunit,resharper,testdriven.net,nbehave,Nunit,Resharper,Testdriven.net,Nbehave,我运行的是TestDriven.Net版本2.23、NBE版本0.4.0.133和nunit版本2.5.0.9122。我还运行最新版本的Resharper。下面是一组测试代码: var address = new Address { ActiveYN = true, Address1 = "555 Ma

我运行的是TestDriven.Net版本2.23、NBE版本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 test runner中运行测试,则不会通过任何错误。如果使用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。有什么想法吗?

新的语法nunit 2.5是特定的吗?Resharper 4.5(最新版本)不支持nunit 2.5。由于许可的原因,Resharper不使用nunit程序集,因此即使您有nunit 2.5,Resharper也使用它自己的版本(可能是2.4.8??)。更多信息请点击此处:


新语法nunit 2.5是否特定?Resharper 4.5(最新版本)不支持nunit 2.5。由于许可的原因,Resharper不使用nunit程序集,因此即使您有nunit 2.5,Resharper也使用它自己的版本(可能是2.4.8??)。更多信息请点击此处:


如果您想使用最新和最好的NUnit框架并支持新的ExpectedException属性,您应该在resharper中安装Gallio框架并使用Gallio TestRunner

Gallio充当单元测试的包装器,无需更改任何现有测试。但是随着它的定制Resharper addin的发布,您将Resharper和Nunit之间的依赖关系进一步转移到Gallio和Nunit,根据我的经验,Gallio的更新频率比Resharper高很多(而且是开源的,所以如果您愿意,您甚至可以使用自己的Nunit v42.1适配器,只需很少的努力)

www.gallio.org

干杯,
Florian

如果您想使用最新和最好的NUnit框架并支持新的ExpectedException属性,您应该在resharper中安装Gallio框架并使用Gallio TestRunner

Gallio充当单元测试的包装器,无需更改任何现有测试。但是随着它的定制Resharper addin的发布,您将Resharper和Nunit之间的依赖关系进一步转移到Gallio和Nunit,根据我的经验,Gallio的更新频率比Resharper高很多(而且是开源的,所以如果您愿意,您甚至可以使用自己的Nunit v42.1适配器,只需很少的努力)

www.gallio.org

干杯,
Florian

您可以使用名为Should的库编写框架不可知断言。它还有一个非常好的fluent语法,如果您喜欢fluent接口,可以使用它。我有一篇与此相关的博客文章


您可以使用名为Should的库编写框架无关断言。它还有一个非常好的fluent语法,如果您喜欢fluent接口,可以使用它。我有一篇与此相关的博客文章


作为完整的旁白,请考虑改名<代码>修改DT <代码> >代码>修改日期>代码>谢谢您的建议。我正在更新一个旧的应用程序,我对我使用的一些命名约定感到惊讶。作为一个完整的旁侧,请考虑改名<代码>修改dt<代码>到<代码>修改日期>代码>谢谢您的建议。我正在更新一个旧的应用程序,我对我使用的一些命名约定感到惊讶。