Как запустить тесты SpecFlow в Visual Studio 2010?
Попытка заставить SpecFlow работать со свежей установкой VS2010 Professional. Создал новое консольное приложение и добавил ссылки на NUnit и SpecFlow. Создал функцию SpecFlow. Создана функция с шаблоном шаблона по умолчанию.
Теперь я пытаюсь запустить этот тест, но я не понимаю, как это сделать. Когда я нажимаю правой кнопкой мыши проект (на верхнем уровне), в раскрывающемся меню мыши нет опции "Run test (s)". Не правильно ли установлен SpecFlow, не хватает ли некоторых ссылок или какого-либо другого инструмента, который мне нужно установить?
Ответы
Ответ 1
Если вы хотите иметь возможность запускать тесты непосредственно из Visual Studio 2010 без каких-либо дополнительных инструментов или расширений, вы должны настроить SpecFlow для использования MsTest в качестве unit test framework.
Это можно сделать в файле конфигурации приложения со следующим:
<configSections>
<section
name="specFlow"
type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/>
</configSections>
<specFlow>
<unitTestProvider name="MsTest" />
<!--
Use this if you're running VS2010
<unitTestProvider name="MsTest.2010" />
-->
</specFlow>
Сгенерированный файл с кодом будет содержать тесты MsTest, которые распознаются Visual Studio и могут быть запущены с помощью тестирующего сценария сборки.
Не нужно вообще использовать NUnit.
Ответ 2
SpecFlow не предоставляет самого бегуна.
SpecFlow генерирует приборы для одной из стандартных модулей Unit-Test-Framework. В SpecFlow 1.3 NUnit (по умолчанию) поддерживаются MSTest и xUnit.net(настроены в App.config).
Для запуска приборов вам нужно использовать бегун, который способен их запускать.
ReSharper - очень хороший вариант для тестового бегуна, который интегрирован в VisualStudio, но он не является бесплатным. ReSharper дает вам контекстное меню "Run Unit Tests" в проводнике решений, на которое вы ссылаетесь.
Альтернативой интеграции VisualStudio является TestDriven.Net(также предоставляющее контекстное меню).
Для NUnit вы также можете использовать бегуны, которые поставляются с самим NUnit (есть GUI-Runner и бегун из командной строки).
Для MSTest вы можете использовать встроенную интеграцию VisualStudio для запуска тестов (однако я нахожу это немного неуклюжим).
xUnit.net также поставляется со своими бегунами, однако я не знаком с ними.
Кроме того, вы можете использовать задачи MSBuild для запуска светильников...
Ответ 3
Чтобы обновить эти вопросы, в последних версиях specflow вы должны использовать (используйте MsTest.2010)
<configSections>
<section
name="specFlow"
type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/>
</configSections>
<specFlow>
<unitTestProvider name="MsTest.2010" />
</specFlow>
см. SpecFlow ошибочно, используя NUnit
Ответ 4
Я написал сообщение в блоге о том, как использовать пакетный файл в качестве внешнего инструмента для автоматического запуска функций SpecFlow в NUnit и создания html-отчета. См.: http://watirmelon.com/2011/02/18/c-sharp-atdd-on-a-shoestring/
Ответ 5
Что-то, что меня поймало. Я должен был убедиться, что Тип проекта был тестовым проектом. Мне пришлось выгрузить проект и изменить GUID проекта на проект Unit Test. Как только я это сделал, тест SpecFlow (и любой другой) в проекте ожил
Ответ 6
Тесты Specflow запускаются с использованием NUnit (GUI), который необходимо вызвать извне или, альтернативно, TestDriven.net или Resharper можно установить для поддержки тестирования изнутри Visual Studio.
Ответ 7
Я создал видео, демонстрирующее, как использовать Specflow с VS2010 здесь
Ответ 8
Вы также можете попробовать Visual Nunit, плагин с открытым исходным кодом NUnit test runner для Visual Studio 2008 и 2010. Получите его с помощью NuGet, для получения дополнительной информации см. http://www.bubblecloud.org/visualnunit