7

我正在尝试使用 xUnit.net 作为 SpecFlow 的测试运行程序。官方下载区的 SpecFlow 1.2 二进制文件不包含 xUnit.net 提供程序,但 GitHub 上的主分支有一个,所以我从那里构建 SpecFlow.Core.dll。我正在使用 xUnit.net 1.5。

但是,当我在我的规范项目中更改 app.config 中的 unitTestProvider 名称时,我得到一个空引用自定义工具错误,并且生成的 .feature.cs 文件是单行:

Object reference not set to an instance of an object.

有没有人成功让 SpecFlow 与 xUnit.net 一起工作?如果是这样,怎么做?

4

3 回答 3

12

我刚刚遇到了同样的问题并找到了答案。只需使用 SpecFlow 的最新版本,我使用的是 1.3.5.2。然后您所要做的就是添加对 xUnit.dll 的引用并使用以下配置为您的 Specs 项目创建一个 App.config 文件:

<?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元素。

于 2010-09-11T19:57:54.177 回答
7

从 SpecFlow 1.3 开始,支持 xUnit! http://groups.google.com/group/specflow/browse_thread/thread/e3d593a52aa17a15

于 2010-06-16T17:23:00.397 回答
5

SpecFlow-Example 存储库中有一个带有 xUnit 的 SpecFlow 示例:

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

为了运行它,您必须从 github(主分支)上的最新源构建 SpecFlow。您还应该安装 SpecFlow 1.2 以获得正确的 VisualStudio 集成。然后将安装目录中的所有程序集(默认 Program Files (x86)\TechTalk\SpecFlow)替换为从源代码构建的程序集。

在此之后,您应该能够构建和运行上述 SpecFlow-Example 项目。

希望这可以帮助?

于 2010-04-30T21:10:20.593 回答