Подтвердить что ты не робот

Как запустить тесты SpecFlow в Visual Studio 2010?

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

Теперь я пытаюсь запустить этот тест, но я не понимаю, как это сделать. Когда я нажимаю правой кнопкой мыши проект (на верхнем уровне), в раскрывающемся меню мыши нет опции "Run test (s)". Не правильно ли установлен SpecFlow, не хватает ли некоторых ссылок или какого-либо другого инструмента, который мне нужно установить?

4b9b3361

Ответ 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