0

我正在运行 TestDriven.Net 版本 2.23、NBehave 版本 0.4.0.133 和 nunit 版本 Unit 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 有什么想法吗?

4

3 回答 3

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

于 2009-10-02T01:59:18.380 回答
0

如果你想使用最新最好的 NUnit 框架并支持新的 ExpectedExceptionAttribute,你应该安装 Gallio 框架并在 resharper 中使用 Gallio TestRunner。

Gallio 充当单元测试的包装器,无需更改任何现有测试。但是由于它附带了它的自定义 Resharper 插件,因此您将 Resharper 和 Nunit 之间的依赖关系进一步转移到了 Gallio 和 Nunit,根据我的经验,Gallio 的更新频率比 resharper (和开源,所以你甚至可以滚动如果你愿意,你自己的 NUnit v42.1 适配器,只需最少的努力)。

www.gallio.org

干杯,弗洛里安

于 2009-10-08T10:10:46.713 回答
0

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

http://nileshgule.blogspot.com/2010/11/use-should-assertion-library-to-write.html

于 2010-11-16T03:22:04.713 回答