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

单个feature文件多场景测试如何清理首个场景新增的待办项

问题原因分析

你的场景校验逻辑本身没有错误,出现3个待办项的核心问题是测试隔离未生效 + 初始化步骤实现逻辑缺陷:

  • 绝大多数BDD测试框架(包括你用的Cucumber)的设计默认要求不同Scenario之间完全独立,前一个场景的运行残留数据不能影响后一个场景。你当前的测试没有做全局的场景前置清理,第一个场景跑完后,待办列表里已经残留了1条First todo item #1。
  • 第二个场景的Given I have a todo list containing 步骤如果实现为直接往现有列表新增数据,而不是先清空再初始化,就会在残留的1条基础上再添加1条相同的待办,此时列表已经有2条待办,再执行新增Next todo item的操作,最终就会得到3条数据。
修复方案

你可以任选以下任意一种方案解决:

  • 给测试套件加全局@Before钩子,每个Scenario执行前强制清空待办列表,保证所有场景的初始运行环境完全干净。
  • 调整Given I have a todo list containing步骤的实现逻辑,执行初始化数据插入前,先清空当前待办列表,避免和前序场景的残留数据累加。
测试代码(逻辑无问题,修复实现后可直接复用)
Scenario: Add first item
  Given my todo list is empty
  When I add "First todo item #1"
  Then my todo list should contain:
    | First todo item #1|
  And the remaining item count should show "1 item left"

Scenario: Add another item
  Given I have a todo list containing
    | First todo item #1 |
  When I add "Next todo item"
  Then my todo list should contain:
    | Next todo item |
    | First todo item #1 |
  And the remaining item count should show "2 items left"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:51:04