解决办法:
Feature工程的App.config中添加对StepDedinition所属工程的名称引用:
<specFlow>
<stepAssemblies>
<stepAssembly assembly="MySharedBindings" />
</stepAssemblies>
</specFlow>
来自外部程序集的绑定
绑定可以在主SpecFlow项目或在其他组件(被定义外部绑定组件)。如果从外部绑定程序集使用绑定,则必须考虑以下注意事项:
外部绑定程序集可以是解决方案中的另一个项目或编译库 (dll)。
外部绑定程序集也可以使用不同的 .NET 语言,例如,您也可以在 F# 中为 C# SpecFlow 项目编写绑定(作为一种极端情况,您可以将您的 SpecFlow 项目与功能文件一起使用,并与定义在外部绑定程序集)。
必须从 SpecFlow 项目中引用外部绑定程序集,以确保将其复制到目标文件夹并在SpecFlow 项目的specflow.json或app.config中列出(见下文)。
外部绑定程序集可以包含所有类型的绑定:步骤定义、钩子以及步骤参数转换。
SpecFlow v1.8 或更早版本的 Visual Studio 集成不完全支持来自程序集引用的绑定:来自这些程序集的步骤定义不会列在自动完成列表中。
外部绑定文件必须位于所引用项目的根目录中。如果它在项目中的文件夹中,则不会找到绑定。
配置
为了使用来自外部绑定程序集的绑定,您必须在 SpecFlow 项目的specflow.json或app.config中列出它(带有程序集名称)。SpecFlow 项目始终隐式包含在内。请参阅配置指南部分中有关配置的更多详细信息。
specflow.json 示例:
{
"stepAssemblies": [
{
"assembly": "MySharedBindings"
}
]
}
app.config 示例:
<specFlow>
<stepAssemblies>
<stepAssembly assembly="MySharedBindings" />
</stepAssemblies>
</specFlow>
转自:https://docs.specflow.org/projects/specflow/en/latest/Bindings/Use-Bindings-from-External-Assemblies.html