在单个SpecFlow项目中使用多个步骤定义程序集的问题咨询
SpecFlow多步骤定义程序集配置解决方案
SpecFlow原生支持单个测试项目加载多个外部步骤定义程序集,你当前遇到的问题是specflow.json的配置格式错误导致的。
你原有配置的问题在于:stepAssemblies节点本身是数组类型,每一个外部程序集需要单独作为数组下的一个对象声明,你错误地将stepAssemblies设为对象,在内部嵌套了assembly数组,不符合SpecFlow的配置规范。
修改后的正确配置如下:
{ "stepAssemblies": [ { "assembly": "A" }, { "assembly": "B" } ] }
配置修改后需要注意以下事项:
- 确保程序集A、B已被你的SpecFlow测试项目添加项目引用/包引用,编译后对应dll会输出到测试项目的运行目录
- 外部程序集中的步骤定义类必须为
public修饰,且类上标注了[Binding]特性 - 修改配置后请完全清理项目缓存、重新编译后再运行测试,避免旧的缓存配置导致加载失效
- 如果你使用的是.NET Framework项目且用
App.config做配置,对应配置格式如下:
<specFlow> <stepAssemblies> <stepAssembly assembly="A" /> <stepAssembly assembly="B" /> </stepAssemblies> </specFlow>
内容的提问来源于stack exchange,提问作者Macra Alexandru
相关产品推荐
相关产品推荐

