Cucumber场景切换机制及多Feature文件场景执行顺序问询
Cucumber场景执行顺序解析
默认执行逻辑
- 加载Feature文件时,Cucumber默认按文件系统中文件的字母/数字排序顺序来执行文件。比如你的
forgotpwd.feature和login.feature,会先执行字母排序靠前的文件(forgotpwd比login先跑)。 - 单个Feature文件内部的场景,严格按照你在文件里书写的顺序执行;每个文件的Background只会在当前文件的场景执行前运行,和其他文件的Background完全独立。
自定义执行顺序的方法
如果需要按业务逻辑(比如先跑登录场景,再跑找回密码)控制顺序,有几种实用方式:
- 给文件加编号前缀:直接给Feature文件命名时加数字前缀,比如
01_login.feature、02_forgotpwd.feature,文件系统排序时会自动按编号顺序加载执行。 - 用标签指定执行顺序:给Feature或场景打标签,比如给登录相关打
@login,找回密码打@forgotpwd,然后在运行命令里指定标签顺序:
这样会先执行所有带cucumber --tags @login,@forgotpwd@login的场景,再执行@forgotpwd的场景。 - 指定文件路径列表:运行时直接明确指定要执行的Feature文件顺序,比如:
cucumber features/login.feature features/forgotpwd.feature - 自定义排序插件(针对Java等语言):如果是Java环境,可以实现Cucumber的
Ordering接口,自定义排序规则(比如按Feature名称、标签优先级等)。
注意:如果开启了并行执行模式,场景执行顺序会被打乱,若需要严格逻辑顺序,建议关闭并行执行,或确保并行的场景之间无依赖关系。
内容的提问来源于stack exchange,提问作者RgEya
相关产品推荐
相关产品推荐

