使用cypress-cucumber时是否要为每个feature文件单独创建Step definition文件夹
cypress-cucumber step definition 存放方案解答
是否需要为每个feature单独创建对应文件夹存放step?
- 没有强制要求必须这么做,属于项目级的可选规范。
- 如果两个feature对应完全独立的业务域、步骤复用率极低,分开存放的优势是目录结构更清晰,后续维护时可以快速定位对应业务的步骤代码,更适合中大型多业务模块的测试项目。
是否可以将所有step definition统一放在同一个文件夹供所有feature调用?
- 完全可以,cypress-cucumber默认会全局加载所有注册的step definition,和存放路径无关,你只需要在cypress配置文件的
stepDefinitions字段指定对应加载路径即可,参考配置示例:
const { defineConfig } = require('cypress') const cucumber = require('cypress-cucumber-preprocessor').default module.exports = defineConfig({ e2e: { setupNodeEvents(on, config) { on('file:preprocessor', cucumber()) }, specPattern: "cypress/e2e/**/*.feature", }, cucumber: { // 这里配置统一存放step的目录路径即可 stepDefinitions: "cypress/support/step_definitions/**/*.js", } })
- 这种统一存放的方式更适合小型项目,或者多个feature之间步骤复用率很高的场景,不用重复编写相同的步骤代码,所有feature都可以直接调用已经定义好的公共步骤。
唯一需要规避的问题是不要出现完全相同的step匹配语句,否则运行时会报匹配歧义错误,该问题和step的存放目录没有关联。
内容的提问来源于stack exchange,提问作者koti P
相关产品推荐
相关产品推荐

