cucumber-js+playwright项目如何在steps.js中访问worldParameters的baseUrl
cucumber-js 中获取worldParameters配置项的方法
你在cucumber配置文件里定义的worldParameters参数,会被cucumber自动注入到步骤执行的World上下文里,直接在步骤定义中通过this.parameters就能取值,具体用法如下:
1. 配置校验
先确保你的cucumber.js配置文件结构符合规范,参考示例:
// cucumber.js module.exports = { default: { worldParameters: { baseUrl: 'https://www.google.com' }, require: ['./steps/**/*.js'], // 你的步骤文件存放路径 // 其余原有配置保持不变即可 } }
2. 步骤文件中的使用方式
注意:步骤定义的回调函数不能用箭头函数,箭头函数会改变this指向,导致无法拿到World上下文,必须用普通
function声明。
直接在步骤回调里通过this.parameters.baseUrl就能拿到配置值,结合playwright使用的完整示例:
// steps/home.steps.js const { Given, Then } = require('@cucumber/cucumber'); const { chromium } = require('playwright'); Given('打开站点首页', async function () { // 直接读取配置里的baseUrl const { baseUrl } = this.parameters; // 结合playwright做页面跳转 this.browser = await chromium.launch({ headless: false }); this.page = await this.browser.newPage(); await this.page.goto(baseUrl); // 直接使用拿到的地址 }); Then('校验页面加载正常', async function () { const title = await this.page.title(); if (!title.includes('Google')) throw new Error(`页面标题异常,实际值:${title}`); await this.browser.close(); });
补充说明
- 如果你用的是v6及更早的cucumber-js老版本,配置值挂载在
this.worldParameters路径下,目前主流的v7+版本统一用this.parameters取值即可 - 你后续往
worldParameters里加的其他自定义参数(比如测试账号、环境标识等),都可以通过this.parameters.参数名的方式直接读取,不需要额外做注入操作
内容的提问来源于stack exchange,提问作者itstoocloudy
相关产品推荐
相关产品推荐

