【问题标题】:TestDriven.Net nunit.framework errorTestDriven.Net nunit.framework 错误
【发布时间】:2009-10-02 01:34:56
【问题描述】:

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

【问题讨论】:

  • 作为一个完整的旁注,考虑将ModifiedDt重命名为ModifiedDate
  • 感谢您的建议。我正在更新一个旧应用程序,我对我使用的一些命名约定感到惊讶。

标签: nunit resharper testdriven.net nbehave


【解决方案1】:

新语法是 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

【讨论】:

    【解决方案2】:

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

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

    www.gallio.org

    干杯, 弗洛里安

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-17
        • 2015-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多