Вопрос

Я использую 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. Есть мысли?

Это было полезно?

Решение

Является ли новый синтаксис 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

Другие советы

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

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

www.gallio.org

Ура, Флориан

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top