Как запустить сценарии SpecFlow из командной строки с помощью MSTest?

У меня есть Visual Studio 2010, и у нас есть два решения VS, с которыми мы работаем. Первый-это веб-приложение, а второй-строго для тестов SpecFlow. Наличие двух экземпляров Visual Studio, работающих одновременно только для запуска функций SpecFlow, съедает всю доступную ОЗУ, заставляя вещи замедляться.

Я сделал некоторый поиск в Google и здесь, в StackOverflow, а также просмотрел документацию MS на инструменте командной строки MSTest, но я не нашел ответа. Полный набор тестов SpecFlow занимает ~45 минут, и мне действительно нужно запустить только несколько сценариев.

Мне было интересно, есть ли способ запустить отдельные функции SpecFlow и даже отдельные сценарии из командной строки с помощью MSTest?

3 ответов


за сценой тесты specflow - это просто регулярные модульные тесты mstest. Таким образом, вы должны иметь возможность запускать их одинаково, используя что-то вроде:

для запуска определенного сценария:

mstest /testcontainer:tests.dll /test:GivenMyScenarioWhenIDoSomeStuff

чтобы запустить несколько конкретных сценариев, вы можете использовать флаг / test несколько раз:

mstest /testcontainer:tests.dll /test:GivenMyScenarioWhenIDoSomeStuff /test:GivenMyScenarioWhenIDoSomemthingElse

для запуска функции

mstest /testcontainer:tests.dll /test:MyFeatureName

если вы добавляете теги в свои сценарии, например, с помощью @MyTag, вы также можете использовать опцию

/category:MyTag to filter down the scenarios to run.

пожалуйста посмотрите на сгенерированный код позади ваших файлов функций, чтобы получить представление о том, как все на самом деле работает, если вы familliar с mstest, это должно быть довольно просто.


существует пакет nuget с именем " Specrun.Specflow" скачать. И это изменит ваше приложение.config и установить unitTestProvider имя="SpecRun", так что вы можете удалить имя unitTestProvider="действия MSTest" или "Нанит", сейчас на сохранение приложение.изменения конфигурации, visual studio предложит вам восстановить файлы функций, нажмите " Да " и теперь создайте решение, вы увидите, что ваши тестовые файлы были восстановлены. Теперь в командной строке перейдите к C:\Users\\Documents\Visual Studio 2015\проекты\ и тип runtests.cmd, он должен запускать все ваши файлы функций напрямую.


я попробовал технику тегов, но это не сработало, я использую более старую версию SpecFlow. Итак, я пошел в .особенность.cs файл, связанный с файлом функций и искал TestMethodAttribute ()

[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]

я добавил атрибут TestCategory поверх этого, как и следующее:

[Microsoft.VisualStudio.TestTools.UnitTesting.TestCategory("MyCat")]

сборка и компиляция, и команда работала как шарм с

/Category:MyCat 

Я надеюсь, что кто-то найдет ответ полезным.