Cucumber中defineParameterType应在哪里声明?自定义参数类型不识别如何解决
Cucumber 自定义参数类型不识别问题解决
自定义参数类型的声明位置
Cucumber JS启动时会自动加载配置指定路径下的所有JS文件,你只需要满足以下任意一个条件即可:
- 直接将存放
defineParameterType的ParameterType.js文件放在项目默认的step_definitions目录下,Cucumber会自动扫描加载 - 如果文件放在其他目录,需要在项目根目录的
cucumber.js配置文件中,将该文件所在路径加入require配置项,示例配置如下:
// 根目录cucumber.js配置 module.exports = { require: [ 'step_definitions/**/*.js', '你的自定义参数类型文件所在目录/**/*.js' ] }
自定义name参数无法被识别的原因
你当前的配置存在两个可修复的问题:
- 步骤定义的回调函数未接收参数
你写的步骤定义回调没有声明形参接收{name}匹配到的内容,调整即可:
const { Given } = require('@cucumber/cucumber'); // 新增形参接收匹配到的name值 Given('we have a new ApiKey called {name}', function (name) { console.log('----Inside function--- 匹配到的name值为:', name); return 'pending'; });
- 确认参数类型文件已被加载
如果调整后还是提示步骤未定义,说明你的ParameterType.js未被Cucumber加载,可直接将该文件移动到step_definitions目录下测试,或者按照上面的配置方法修改cucumber配置的加载路径。
内容的提问来源于stack exchange,提问作者For Testing
相关产品推荐
相关产品推荐

