4

当使用来自不同装配的步骤定义时,转到定义 (F12) 不起作用。有没有办法让它工作?

4

5 回答 5

4

这可能是 Specflow 中的错误或类似问题。我有完全一样的问题。当尝试从功能文件转到步骤定义时,Visual Studio 说没有匹配的步骤绑定。虽然,在尝试运行测试时,它们运行正常,因此 Specflow 确实可以找到(并使用)匹配的步骤定义。

于 2012-09-24T13:24:38.830 回答
1

SpecFlow 1.8 Visual Studio 扩展不完全支持外部程序集中的绑定。这在他们的文档中有所说明。SpecFlow 支持它们,但 Visual Studio 扩展仅部分支持。我不确定 1.9 是否解决了这个问题。

于 2012-10-10T02:33:25.797 回答
1

这可能很明显,但请确保安装 SpecFlow 扩展。

工具 -> 扩展/更新 -> 在线 -> 搜索“Specflow”

于 2016-07-18T14:34:51.743 回答
0

我知道我晚饭有点晚了,但似乎 SpecFlow 将所有它的绑定数据存储在用户的 %temp% 文件夹中,并且这些文件是在功能文件和步骤文件之间映射的简单 .json 文件。

因此,当步骤与您的 .feature 文件位于相同的解决方案中时,SpecFlow 能够检测到正确的源文件和步骤方法的确切位置。

但是,当这些步骤在引用的 dll 中时,.json 配置文件不足以在 dll 中定位元数据,因此 F12 不起作用。

我猜这需要对引用的程序集进行某种设计时反射才能使 F12 工作。

于 2016-05-04T10:18:13.037 回答
0

@ShonnLyga 非常感谢这非常有用

要从 DLL 引用程序集,您现在可以使用

<specFlow>
    <unitTestProvider name="NUnit" />
    <stepAssemblies>
      <stepAssembly assembly="YourDLLname" />
    </stepAssemblies>
</specFlow>
于 2017-05-16T13:58:09.487 回答