Как запустить ВСЕ тесты в моем решении с помощью командной строки MSTest.exe?
В соответствии с MSDN здесь и обсуждался здесь, мы можем использовать MSTest.exe
для запуска тестов из командной строки, что является приятным и быстрым, чем работа в среде IDE (особенно медленно, если вы работаете с таким большим решением, как я).
Мой вопрос в том, как я могу использовать MSTest.exe
для запуска тестов all в моем решении? Команда имеет параметр /test
для фильтрации тестов в одной сборке, указанной в параметре /container
. Я могу только подумать о том, чтобы называть эту команду N раз, учитывая, что у меня есть все тестовые сборки N в моем решении (!?) Кроме того, результаты после запуска основаны на сборке, поэтому нелегко получить, какие тесты были неудачны/прошло.
Если вы знаете лучший способ, пожалуйста, поделитесь! Спасибо!
Ответы
Ответ 1
Я выполнил это, используя аргумент testmetadata
и указав его в мой .vsmdi файл.
Как описано здесь.
например:.
mstest /testmetadata:mySolution.vsmdi
Однако обратите внимание, что testmetadata
может быть более хрупким (например, пустые тестовые списки в сочетании с аргументом Игнорировать причину "Указанный откат недопустим" ).
Создание пакета со всеми DLL, содержащими тестовые классы, может быть более надежной альтернативой.
Ответ 2
Мне нужно было то же самое, не желая ничего устанавливать или генерировать файлы vsmdi
, поэтому я придумал этот PowerShell
script, ниже. Он запускает тесты ВСЕ в одной команде в папке и вложенных папках (не solution, но для меня это подходит).
Не стесняйтесь предлагать, как сделать этот script более элегантным:
$x = ""; dir *\bin\*test*.dll -Recurse | foreach { $x += "/testcontainer:""$_"" " }; iex "mstest $x"
Инструкция:
Ответ 3
Возможно, вам стоит взглянуть на тестовый бегун Gallio.Echo, который поставляется с Gallio платформа автоматизации тестирования. Это бесплатный (OSS) пакет с множеством удобных средств отчетности и тестовых лент и который поддерживает большинство существующих тестовых фреймворков (MbUnit, NUnit, MSTest, xUnit и т.д.).
![alt text]()
В частности, Gallio.Echo - это универсальный тест-драйв командной строки. Вы можете указать список тестовых сборок, различные фильтры и множество дополнительных опций. Gallio объединяет результаты тестов в одном отчете (Xml, Html, Zip и т.д.).
Ответ 4
Просто используйте:
mstest.exe /testcontainer:yourTests.dll /resultsfile:res.trx
и он будет запускать все тесты в этой сборке и выплевывать результаты в указанном файле.