Запуск mstest из командной строки против собственных тестов С++ Visual Studio 2012

У меня есть решение Visual Studio 2012 с рядом собственных тестовых проектов С++. Я могу запустить все это правильно и успешно из Visual Studio 2012 с помощью вкладки "Тестирование".

Тем не менее, я не могу заставить тесты работать при запуске из командной строки.

Следуя документации, я выполнил следующую командную строку

mstest /testcontainer:PathToTestProject\Win32\Release\testproject.dll

Мне также нужно запустить

mstest /testcontainer:PathToTestProject\x64\Release\testproject.dll

для тестирования 64-битной версии кода.

Когда я запускаю эти командные строки, я получаю следующее сообщение об ошибке.

Инструмент командной строки выполнения Microsoft (R) версии 11.0.50727.1 Copyright (c) Корпорация Microsoft. Все права защищены.

Загрузка PathToTestProject\Win32\Release\testproject.dll... PathToTestProject\Win32\Release\testproject.dll Не удалось загрузить тестовый контейнер PathToTestProject\Win32\Release\testproject.dll 'или одну из его зависимостей. Если вы создадите сборку тестового проекта как 64-битную сборку, ее нельзя загрузить. Когда вы создаете сборку тестового проекта, выберите "Любой процессор" для платформы. Чтобы запустить ваши тесты в 64-битном режиме на 64-битном процессоре, вы должны изменить свои тестовые настройки на вкладке "Хосты", чтобы запустить ваши тесты в 32-битном процессе. Сведения об ошибке: Не удалось загрузить файл или файл сборки:///c:\PathToTestProject\Win32\Release\testproject.dll 'или одну из его зависимостей. Ожидается, что модуль будет содержать манифест сборки.

Код является родным С++ и имеет две конфигурации сборки, одну на платформе Win32, а другую на платформе x64. Я не могу иметь конфигурацию платформы AnyCPU. Что мне не хватает здесь, чтобы иметь возможность запускать тесты из командной строки?

Ответ 1

После большого поиска я наконец обнаружил очень скрытую страницу документации msdn здесь, в котором говорится о совместимости mstest с различными типами тестовых проектов. И получается, что mstest несовместим с собственными модульными тестами (приятно из msdn, чтобы документировать это в удобном для поиска месте). Вместо этого вам нужно использовать тест визуальной студии (vstest.console.exe) вместо msbuild для собственных unit test проектов.

например

vstest.console.exe /Platform:x64 PathToTestProject\x64\Release\testproject.dll