Ошибка TestDriven.Net nunit.framework

Я использую 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 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)

Это новая машина, и я никогда не запускал нунит 2.4.8. Есть мысли?


person Chance Robertson    schedule 02.10.2009    source источник
comment
В качестве полного примечания: пожалуйста рассмотрите возможность переименования ModifiedDt в ModifiedDate.   -  person Matthew Scharley    schedule 02.10.2009
comment
Спасибо за совет. Я обновляю старое приложение, и я поражен некоторыми соглашениями об именах, которые я использовал.   -  person Chance Robertson    schedule 02.10.2009


Ответы (3)


Является ли новый синтаксис nunit 2.5 специфичным? Resharper 4.5 (последняя версия) не поддерживает nunit 2.5. Resharper не использует сборки nunit по причинам лицензирования, поэтому, даже если у вас есть nunit 2.5, Resharper использует свою собственную версию (может быть, это может быть 2.4.8??). Подробнее здесь:

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

person Abby Fichtner    schedule 02.10.2009

Если вы хотите использовать новейшую и лучшую платформу NUnit и поддерживать новый атрибут ExpectedExceptionAttribute, вам следует установить платформу Gallio и использовать Gallio TestRunner в resharper.

Gallio выступает в качестве оболочки для ваших модульных тестов, и вам не нужно изменять какие-либо из ваших существующих тестов. Но поскольку он поставляется со своей пользовательской надстройкой Resharper, вы смещаете зависимость между Resharper и Nunit дальше по линии к Gallio и Nunit, и, по моему опыту, Gallio обновляется гораздо чаще, чем resharper (и с открытым исходным кодом, так что вы можете даже свернуть свой собственный адаптер NUnit v42.1, если хотите, с минимальными усилиями).

www.gallio.org

Привет, Флориан

person Florian Doyon    schedule 08.10.2009

Вы можете писать независимые от фреймворка утверждения, используя библиотеку Should. Он также имеет очень приятный свободный синтаксис, который можно использовать, если вам нравятся плавные интерфейсы. У меня была запись в блоге, связанная с тем же.

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

person Nilesh Gule    schedule 16.11.2010