Запуск mstest из командной строки для тестов Visual Studio 2012 C ++

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

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

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

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

Мне тоже нужно бежать

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

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

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

Средство командной строки для выполнения теста Microsoft (R) версии 11.0.50727.1
Авторское право (c) Microsoft Corporation. Все права защищены.

Загрузка PathToTestProject \ Win32 \ Release \ testproject.dll …
PathToTestProject \ Win32 \ Release \ testproject.dll
Не удалось загрузить тестовый контейнер PathToTestProject \ Win32 \ Release \ testproject.dll ‘или одну из его зависимостей. Если вы строите сборку тестового проекта как 64-битную сборку, она не может быть загружена. При сборке сборки тестового проекта выберите «Любой процессор» для платформы. Чтобы запустить ваши тесты в 64-битном режиме на 64-битном процессоре, вы должны изменить настройки теста на вкладке Hosts, чтобы тесты выполнялись в 32-битном процессе. Сведения об ошибке: Не удалось загрузить файл или сборку ‘file: /// c: \ PathToTestProject \ Win32 \ Release \ testproject.dll’ или одну из ее зависимостей. Модуль должен был содержать манифест сборки.

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

24

Решение

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

например

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]