Как заставить SpecFlow работать с xUnit.net в качестве тестового бегуна - PullRequest
5 голосов
/ 27 апреля 2010

Я пытаюсь использовать xUnit.net в качестве тестового прогона для SpecFlow.Двоичные файлы SpecFlow 1.2 из официальной области загрузки не содержат провайдера xUnit.net, но в основной ветке GitHub он есть, поэтому я создаю SpecFlow.Core.dll из этого.Я использую xUnit.net 1.5.

Однако, когда я изменяю имя unitTestProvider в app.config в моем проекте спецификации, я получаю ошибку пользовательского инструмента с нулевой ссылкой и сгенерированный файл .feature.csодна строка:

Object reference not set to an instance of an object.

Кому-нибудь удалось заставить SpecFlow работать с xUnit.net?Если да, то как?

Ответы [ 3 ]

12 голосов
/ 11 сентября 2010

Я просто столкнулся с той же проблемой и нашел ответ. Просто используйте последние версии SpecFlow, я использую 1.3.5.2. Затем все, что вам нужно сделать, это добавить ссылку на xUnit.dll и создать файл App.config для вашего проекта Specs с этой конфигурацией:

<?xml version="1.0" encoding="utf-8" ?>
  <configuration>
    <configSections>
       <section name="specFlow" type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/>
    </configSections>

    <specFlow>
       <language feature="en-US" />
         <unitTestProvider name="xUnit" />

         <runtime detectAmbiguousMatches="true" stopAtFirstError="false"
                 missingOrPendingStepsOutcome="Inconclusive" />

         <trace traceSuccessfulSteps="true" traceTimings="false"
             minTracedDuration="0:0:0.1" />
    </specFlow>
  </configuration>

Часть, которая делает это, - элемент unitTestProvider .

6 голосов
/ 16 июня 2010

Начиная с SpecFlow 1.3, xUnit поддерживается! http://groups.google.com/group/specflow/browse_thread/thread/e3d593a52aa17a15

3 голосов
/ 01 мая 2010

В репозитории SpecFlow-Example есть пример для SpecFlow с xUnit:

http://github.com/techtalk/SpecFlow-Examples/tree/master/BowlingKata/BowlingKata-XUnit

Чтобы запустить его, вы должны собрать SpecFlow из последних источников на github (основная ветка). Вы также должны были установить SpecFlow 1.2, чтобы получить правильную интеграцию VisualStudio. Затем замените все сборки в каталоге установки (файлы программы по умолчанию (x86) \ TechTalk \ SpecFlow) на сборки, созданные из исходного кода.

После этого вы сможете собрать и запустить вышеупомянутый проект SpecFlow-Example.

Надеюсь, это поможет?

...