Как запустить тесты SpecFlow в Visual Studio 2010? - PullRequest
40 голосов
/ 06 июня 2010

Попытка запустить SpecFlow с новой установкой VS2010 Professional. Создано новое консольное приложение и добавлены ссылки на NUnit и SpecFlow. Создана функция SpecFlow. .Feature с кодом шаблона по умолчанию создан.

Сейчас я пытаюсь запустить этот тест, но я не понимаю, как. Когда я щелкаю правой кнопкой мыши по проекту (на верхнем уровне), в выпадающем меню мыши нет опции «Выполнить тест (ы)». Не правильно ли установлен SpecFlow, мне не хватает некоторых ссылок или какого-либо другого инструмента, который мне нужно установить?

Ответы [ 8 ]

81 голосов
/ 14 июня 2010

Если вы хотите иметь возможность запускать свои тесты непосредственно из Visual Studio 2010 без каких-либо дополнительных инструментов или расширений, вам следует настроить SpecFlow на использование MsTest в качестве основы для модульного тестирования.

Это можно сделать в файле конфигурации вашего приложения следующим образом:

  <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 и могут быть запущены с помощью средства запуска build-it.

Нет необходимости использовать NUnit вообще.

10 голосов
/ 07 июня 2010

SpecFlow не предоставляет самого бегуна.
SpecFlow генерирует приспособления для одного из общих модульных тест-фреймворков. В 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 для запуска приборов ...

6 голосов
/ 05 февраля 2012

Просто, чтобы обновить эти вопросы, в последних версиях specflow, которые вы должны использовать, (используйте MsTest.2010)

<configSections> 
    <section 
       name="specFlow" 
       type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/> 
  </configSections> 
  <specFlow> 
    <unitTestProvider name="MsTest.2010" /> 
  </specFlow> 

см. SpecFlow неправильно с использованием NUnit

4 голосов
/ 28 февраля 2012

Что-то, что застало меня врасплох.Я должен был убедиться, что Тип проекта был Тестовым Проектом.Мне пришлось выгрузить проект и изменить GUID проекта на проект модульного тестирования.Как только я это сделал, тест SpecFlow (и любой другой) в проекте ожил

4 голосов
/ 18 февраля 2011

Я написал сообщение в блоге о том, как использовать командный файл в качестве внешнего инструмента для автоматического запуска функций SpecFlow в NUnit и создания отчета в формате html. Смотри: http://watirmelon.com/2011/02/18/c-sharp-atdd-on-a-shoestring/

3 голосов
/ 06 июня 2010

Тесты Specflow выполняются с использованием NUnit (GUI), который необходимо вызывать извне или альтернативно. TestDriven.net или Resharper можно установить для поддержки запуска тестов из Visual Studio.

2 голосов
/ 16 ноября 2011

Я создал видео, демонстрирующее, как использовать Specflow с VS2010 здесь

0 голосов
/ 19 января 2012

Вы также можете попробовать Visual Nunit, плагин для запуска тестов NUnit с открытым исходным кодом для Visual Studio 2008 и 2010. Получите его с помощью NuGet, для получения дополнительной информации см. http://www.bubblecloud.org/visualnunit

...