Cypress cy.exec()执行命令时变量替换失效问题求助
问题解决方法
错误原因
- 字符串语法不符合模板字符串要求:JS/TS 中只有用反引号
包裹的内容才会识别${变量名}` 语法做变量替换,你当前用的单引号会把内容当成纯文本,不会解析变量。 - 变量名不匹配:你定义的变量名为
Name,但占位符里写的是fileName,二者名称不一致,就算语法正确也无法正常取值。
修正后代码
// 先统一变量名 const fileName = Cypress.env('file'); // 用反引号包裹命令,启用模板字符串变量替换 cy.exec(`ls ${fileName}`, { failOnNonZeroExit: true });
特殊场景优化建议
如果你的文件名包含空格、特殊符号,为了避免shell执行报错,推荐用环境变量传参的方式写,不需要处理额外转义:
const fileName = Cypress.env('file'); cy.exec('ls "$FILE_NAME"', { failOnNonZeroExit: true, env: { FILE_NAME: fileName } });
内容的提问来源于stack exchange,提问作者linuxuser26
相关产品推荐
相关产品推荐

