Как настроить MSTest для тестирования 64-битной сборки
В дополнение к информации .testsettings, предоставленной другими ответчиками по этому вопросу, этот ответ покрывает некоторые особенности Visual Studio 2015 и более ранних версий Visual Studio 2017, это исправление также может работать для Visual Studio 2013, но я не у меня нет машины для тестирования.
1. Добавить файл .testsettings
Щелкните правой кнопкой мыши на Solution (не на модульном тестовом проекте), затем в категории «Настройки теста» добавьте файл .testsettings. Его можно назвать как угодно.
2. Сконфигурируйте файл .testsettings для использования 64-битного процесса
В появившемся мастере «Настройки теста» единственная вещь, которую вы должны настроить, - на вкладке «Хосты» установите «Запуск тестов в 32-битном или 64-битном процессе» на «Запуск тестов в 64-битном процессе». на 64-битной машине ". Пока вы здесь, возможно, стоит проверить настройки по умолчанию, чтобы убедиться, что они имеют смысл. Нажмите Apply, затем Close, когда вы закончите.
Теперь ваш файл .testsettings будет отображаться в обозревателе решений.
Дополнительный обход ошибки в Visual Studio 2015
Похоже, что Visual Studio 2017 (протестировано с использованием версии 15.3.3 Community) сделала шаги 3 и 4 ненужными. Я оставлю эти шаги здесь для тех из вас, кто использует более старые версии Visual Studio, или если есть способ воспроизвести поведение.
В Visual Studio 2015, если вы просто установите архитектуру процессора по умолчанию через Тест -> Параметры теста -> Архитектура процессора по умолчанию -> x64, Visual Studio забудет ваши настройки ( см. Этот отчет об ошибке ). Это было протестировано в Visual Studio 2015 Professional Update 3.
- Из того, что я прочитал, Visual Studio 2013 имеет ошибку, аналогичную Visual Studio 2015, когда речь идет о запоминании архитектуры процессора. Я не проверял это в Visual Studio 2013 (у меня его нет), но, возможно, стоит попробовать.
3. Добавьте файл .runsettings, чтобы сделать ваши тесты постоянно 64-битными
Откройте блокнот (или выбранный вами редактор XML-файлов) и вставьте его в него.
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- Configurations that affect the Test Framework -->
<RunConfiguration>
<!-- [x86] | x64 -->
<TargetPlatform>x64</TargetPlatform>
</RunConfiguration>
</RunSettings>
Затем сохраните файл, я сохранил его как DemoTest.runsettings в каталоге моего решения вместе с DemoTest.testsettings.
См. Настройка модульных тестов с использованием файла .runsettings для получения дополнительной информации об этом файле.
Примечание. Безопасно иметь файл .runsettings, содержащий только эту запись, потому что ...
Каждый элемент файла является необязательным, поскольку каждое значение имеет значение по умолчанию.
Я рекомендую добавить ваш файл .runsettings в ваше решение, чтобы разработчики могли видеть его в Solution Explorer, хотя это никак не влияет на функциональность.
4. Загрузите ваш файл .runsettings
В строке меню выберите Тест -> Настройки теста -> Выбрать файл настроек теста
Выберите файл runsettings . Не ваш файл testsettings.
Теперь вы сможете запускать тесты без проблем.
Ограничения MSTest
Обратите внимание, что MSTest будет работать только с проектами модульного тестирования, скомпилированными как Любой ЦП. Тестовый проект x64 не будет показывать никаких тестов в Test Explorer.
Проверяемая сборка может быть x64, но сама библиотека модульного тестирования должна быть Любой ЦП.