Подтвердить что ты не робот

Как получить модульные тесты для запуска на платформе x64

У меня есть приложение С#, которое должно работать в режиме x64. Проблема в том, что я пытаюсь создать модульные тесты, которые запускают методы в приложении x64, а проект unit test даже не будет создан. Я получаю следующую ошибку, когда пытается создать.

Ошибка загрузки C:.....\bin\x64\Debug.... UnitTests.dll: невозможно загрузить тестовый контейнер C:.....\bin\x64\Debug.... UnitTests.dll 'или одну из его зависимостей. Если вы создадите сборку тестового проекта как 64-битную сборку, ее нельзя загрузить. Когда вы создаете сборку тестового проекта, выберите "Любой процессор" для платформы. Чтобы запустить ваши тесты в 64-битном режиме на 64-битном процессоре, вы должны изменить свои тестовые настройки на вкладке "Хосты", чтобы запустить ваши тесты в 32-битном процессе. Сведения об ошибке: Не удалось загрузить файл или файл сборки:///C:..... UnitTests\bin\x64\Debug.... UnitTests.dll 'или одна из его зависимостей. Была сделана попытка загрузить программу с неправильным форматом.

Я попытался изменить unit test на x64, а также любой CPU и все еще не могу заставить его работать. Есть ли какое-либо исправление для этого?

4b9b3361

Ответ 1

Я предполагаю, что вы используете среду тестирования Visual Studios, так как не упоминаете другого. В VS2010 вы можете заставить тестовый хост работать в x64. Создайте свои сборки как любой процессор или x64, затем установите тестовый узел на x64.

http://msdn.microsoft.com/en-us/library/ee782531.aspx

Ответ 2

В VS 2012 и выше вы можете выбрать целевую платформу по умолчанию из Test в меню Test Settings|Default Processor Architecture

Настройки тестирования Visual Studio

Ответ 3

У меня была аналогичная проблема. В Visual Studio 2010 есть странная проблема (в x64), что приводит к изменению целевого ЦП при добавлении нового проекта в существующее решение. Вы уверены, что все ссылки и целевые объекты ЦП равны x64?

Ответ 4

Вам нужно будет установить все ссылки тестового проекта на локальный (установите значение true). Я получил эту проблему раньше, надеюсь, что она будет работать и для вас (я использую Windows 7 64 бит + VS2012)

Ответ 5

Эта ошибка может быть исправлена, если вы очищаете и перестраиваете все соответствующие сборки. Должен быть один файл поврежден неожиданно.

Одна вещь, которую нужно улучшить для VS, - это когда обнаружено неправильное форматирование, сообщите имя файла. Затем разработчик может только перестроить этот файл.