Как запустить модульное тестирование из командной строки? - PullRequest
49 голосов
/ 14 октября 2010

Я погуглил и нашел следующие полезные ссылки. В настоящее время я хочу запустить все из командной строки (для простоты выполнения и быстроты) в случаях:

  1. Специальный тест (т. Е. Тест, написанный методом, помеченным как [TestMethod ()])
  2. Все тесты в классе
  3. Все затронутые тесты текущей TFS в ожидании замены шахты.
  4. Все тесты
  5. Все тесты, кроме тех, которые помечены как категория [TestCategory («некоторая категория»)]

Я не уверен, как написать правильную команду для моих нужд выше.

Ссылки:

  1. MSTest.exe http://msdn.microsoft.com/en-us/library/ms182487.aspx
  2. подробные параметры MSTest.exe http://msdn.microsoft.com/en-us/library/ms182489.aspx
  3. получение результата http://msdn.microsoft.com/en-us/library/ms182488.aspx

[Изменить]

Через некоторое время я нашел следующие полезные советы.

  1. запускать модульные тесты Visual Studio с помощью MSTest.exe, расположенного в %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe в моем случае.
  2. с использованием /testcontainer:Path\To\Your\TestProjectAssembly.dll для указания места кодирования ваших тестов. При необходимости вы можете указать несколько параметров '/ testcontainer'.
  3. с использованием /test:TestFilter для фильтрации запускаемых тестов. Обратите внимание, что этот фильтр применяется к полному имени метода тестирования (т. Е. FullNamespace.Classname.MethodName)

Ответы [ 4 ]

15 голосов
/ 18 октября 2010

В настоящее время я могу получить ответы на свои вопросы:

  1. Специальный тест (т. Е. Тест, написанный методом, отмеченным [TestMethod()])
    Использовать MSTest.exe /container: Сборка, содержащая ВашСпециальныйТест Все тесты в классе
    Используйте MSTest.exe /container: TheAssemblyContainedYourClass /test: TheClassNameWithFullNamespace
    Обратите внимание, что /test: - это фильтр, который использует полное имя класса при фильтрации.

Остальные пока неизвестны. Обсудите, если знаете, как.

13 голосов
/ 13 ноября 2012

Для номера 4. Чтобы запустить все тесты в сборке, достаточно просто:

mstest /testcontainer:YourCompiledTestAssembly.dll

4 голосов
/ 16 марта 2013

На вопрос

5 Все тесты, кроме отмеченных как категории [TestCategory ( "некоторая-категория")]

Использование

mstest.exe /testcontainer:yourTests.dll  /category:"!some-category"

Если вам нужно исключить более одной категории, используйте

1012 *

mstest.exe /testcontainer:yourTests.dll  /category:"!group1&!group2"

Ссылка: / фильтр категорий

3 голосов
/ 14 октября 2010

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

В частности, вы можете захотеть использовать Gallio.Echo , который является хорошим средством для запуска командной строки:

Gallio.Echo

У тестеров Gallio также есть возможности фильтрации для запуска только подмножества ваших модульных тестов (например, для каждой категории, для каждого прибора и т. Д.)

...