Как запустить сценарии 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
Я надеюсь, что кто-то найдет ответ полезным.