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

Как запустить ВСЕ тесты в моем решении с помощью командной строки MSTest.exe?

В соответствии с MSDN здесь и обсуждался здесь, мы можем использовать MSTest.exe для запуска тестов из командной строки, что является приятным и быстрым, чем работа в среде IDE (особенно медленно, если вы работаете с таким большим решением, как я).

Мой вопрос в том, как я могу использовать MSTest.exe для запуска тестов all в моем решении? Команда имеет параметр /test для фильтрации тестов в одной сборке, указанной в параметре /container. Я могу только подумать о том, чтобы называть эту команду N раз, учитывая, что у меня есть все тестовые сборки N в моем решении (!?) Кроме того, результаты после запуска основаны на сборке, поэтому нелегко получить, какие тесты были неудачны/прошло.

Если вы знаете лучший способ, пожалуйста, поделитесь! Спасибо!

4b9b3361

Ответ 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"

Инструкция:

  • Добавьте путь к mstest.exe через переменную Environment variables PATH, иначе просто замените mstest на полный путь в PowerShell script выше.

    введите описание изображения здесь

  • Откройте PowerShell, вставьте команду.
  • Изменить *\bin\*test*.dll, чтобы удовлетворить ваши потребности. В текущем script он будет рекурсивно возвращать все DLLs в папку bin, содержащую подстроку "test" в имени файла.
  • Запустите команду!

Ответ 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

и он будет запускать все тесты в этой сборке и выплевывать результаты в указанном файле.