nUnit Exception on a 64 bit Machine

У меня есть приложение MVC 3.0. Мой фреймворк для тестирования - nUnit 2.4.8.0. Я начал этот код на 32-битной машине, а недавно начал использовать 64-битную машину. Так же недавно я обновил проект до .NET 4.0.

Мое приложение работает нормально - я могу соответствующим образом гидратировать объекты из базы данных. Проблема возникает, когда я запускаю интеграционные тесты.

Тесты не работают и выдают исключение, которого я никогда раньше не видел:

NHibernate.ADOException : cannot open connection
  ----> System.BadImageFormatException : An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)

Я искал это исключение в Интернете - это, конечно, проблема с nUnit, несмотря на исключение NHibernate (помните, NHibernate позволяет мне гидратировать и сохранять объекты при запуске приложения).

Я обновил свою сборку nUnit до последней версии, версии 2.5.10, и обновил ссылку в проекте на сборку в папке 'net-2.0' zip-файла nUnit. Я снова запустил тесты и получил то же самое исключение.

Похоже, что существует какой-то 32-битный vs 64-битный конфликт между сборками, кодом и ASP.NET Development Server.

У меня нет опыта работы с 32-битными и 64-битными проблемами, поэтому я не знаю, есть ли другие вопросы на stack overflow, которые имеют отношение к этому (те, которые я видел, похоже, не имеют). У меня есть несколько идей, но нет ответов:

  • Нужна ли мне другая сборка nUnit?
  • Нужно ли мне изменить настройку Solution Platform в VS2010? (Сейчас стоит "Any CPU")
  • Нужно ли мне изменить свойства сборки моего проекта интеграционных тестов?
  • Нужно ли мне изменить настройки конфигурации моего решения?

К сожалению, у меня сейчас нет 32-битной машины для тестирования кода. Является ли любой из вышеперечисленных вопросов правильным путем к решению проблемы? Можете ли вы предложить какие-либо рекомендации?

Спасибо.

UPDATE: Я очень надеюсь, что смогу запускать тесты из Visual Studio с помощью TestDriven.NET. Я не хочу начинать использовать nunit UI для запуска тестов.

ОБНОВЛЕНИЕ 2: Извините, возможно, я не совсем ясно выразился. Я еще не использую TestDriven.NET, я сказал, что надеюсь использовать его, но еще не установил его на новую x64 машину. В данный момент я пытаюсь запустить тесты, нажав на визуальную иконку в Visual Studio IDE, как показано на изображении ниже:

nunit test fixtures

После этого действия тесты не работают, и в появившемся диалоге появляется следующее:

Failed tests

Это и есть исключение, которое я цитировал выше. Нет никаких ссылок на сборки, которые не загрузились.

Сначала я не верил, что версия NHibernate (2.0.1.4000), которую я использую, будет иметь значение; я говорю это потому, что провайдеры могут возвращать нужные объекты из базы данных, когда приложение запущено. Однако, когда я отлаживаю тест, я вижу, что исключение возникает в моем провайдере. Если немного покопаться, кажется, что источником этого является моя сборка SQLite. Но опять же, это та же сборка, которая работает, когда я запускаю проект - почему она не работает, когда я запускаю интеграционные тесты?

exception details

7
задан splatto 29 September 2011 в 19:32
поделиться