You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SpecFlow中添加不同列的Examples?遇参数不一致错误

解决SpecFlow中"example sets must provide the same parameters"错误

错误原因

SpecFlow明确要求:同一个Scenario下的所有Examples块必须包含完全一致的参数列——列名、列数量、顺序都得严格对应。你现在用了两个独立的Examples块,列的内容完全不重合,这直接触发了生成错误。

解决步骤

  1. 合并所有参数到单个Examples块:把两个Examples里的所有参数列整合到同一个表格中,确保Scenario里用到的所有<参数>都能在Examples里找到对应列。
  2. 修正参数引用格式:Examples的列名不要加<>,只有在Scenario步骤里引用参数时才用<参数名>的格式。
  3. 对齐参数引用:检查Scenario中所有带<>的变量,确保和Examples里的列名完全匹配。

修正后的完整代码

Scenario: TradeOrders
    Given Order 'SellOrder' Has Been Registerd
        | Side | Price | Amount | IsFillAndKill | ExpireTime                  |
        | 0    | 100   | 5      | false         | 2024-02-05 09:30:26.2080000 |

    And Order 'BuyOrder' Has Been Defined
        | Side  | Price   | Amount   | IsFillAndKill   | ExpireTime   |
        | <Buy> | <Price> | <Amount> | <IsFillAndKill> | <ExpireTime> |

    When I Register The Order 'BuyOrder'

    Then The following 'Trade' will be created
        | BuyOrderId   | SellOrderId   | Amount        | Price        |
        | <BuyOrderId> | <SellOrderId> | <TradeAmount> | <TradePrice> |

    And BuyOrder 'BuyOrder' Should Be Modified like this
        | Side | Price | Amount | IsFillAndKill | ExpireTime                  |
        | 1    | 100   | 0      | false         | 2024-02-05 09:30:26.2080000 |

Examples:
    | Buy | Price | Amount | IsFillAndKill | ExpireTime                  | BuyOrderId | SellOrderId | TradeAmount | TradePrice |
    | 1   | 100   | 5      | false         | 2024-02-05 09:30:26.2080000 | 1          | 2           | 5           | 100        |

关键改动说明

  • 删除了第二个独立的Examples块,将所有参数列合并到同一个表格中
  • 修正了原第二个Examples块的列名(去掉列名中的<>),确保和Scenario里的<BuyOrderId>等引用一一对应
  • 确保Scenario中所有动态参数,都能在Examples表格找到匹配的列

内容的提问来源于stack exchange,提问作者shirin monzavi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 21:45:50