Как запустить ВСЕ тесты в моем решении, используя командную строку MSTest.exe? - PullRequest
41 голосов
/ 18 октября 2010

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

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

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

Ответы [ 4 ]

13 голосов
/ 07 августа 2012

Я выполнил это, используя аргумент testmetadata и указав его на мой файл .vsmdi.

Как объяснено здесь .

Например:

mstest /testmetadata:mySolution.vsmdi

Однако обратите внимание, что testmetadata может быть более хрупким (например, пустые тестовые списки в сочетании с атрибутом Ignore вызывают "Указанное приведение неверно" ).Создание пакета со всеми DLL, содержащими тестовые классы, может быть более надежной альтернативой.

9 голосов
/ 26 ноября 2015

Мне нужно то же самое, без необходимости что-либо устанавливать или генерировать vsmdi файлы, поэтому я придумал сценарий PowerShell ниже. Он запускает ALL тесты в одну команду в папке и его подпапках (не решение , но для меня это нормально).

Не стесняйтесь предложить, как сделать этот скрипт более элегантным:

$x = ""; dir *\bin\*test*.dll -Recurse | foreach { $x += "/testcontainer:""$_"" " }; iex "mstest $x"

Инструкция:

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

    enter image description here

  • Открыть PowerShell, вставить команду.
  • Изменить *\bin\*test*.dll, чтобы удовлетворить ваши потребности. В текущем скрипте он рекурсивно получит все DLLs в папке bin, содержащей подстроку «test» в имени файла.
  • Запустите команду!
5 голосов
/ 18 октября 2010

Возможно, вы захотите взглянуть на Gallio.Echo , который поставляется с платформой автоматизации тестирования Gallio . Это бесплатный (OSS) пакет с множеством удобных инструментов создания отчетов и организаторов тестов, который поддерживает большинство существующих тестовых сред (MbUnit, NUnit, MSTest, xUnit и т. Д.)

alt text

В частности, Gallio.Echo - это универсальный тестовый прогон командной строки. Вы можете указать список тестовых сборок, различные фильтры и множество дополнительных опций. Gallio объединяет результаты теста в одном отчете (Xml, Html, Zip и т. Д.)

0 голосов
/ 10 февраля 2011

Просто используйте:

mstest.exe /testcontainer:yourTests.dll /resultsfile:res.trx

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...