自研Cypress自动化框架解析YML文件遇ParseException异常求助
问题
在使用自研Cypress测试自动化框架解析YML文件时遭遇解析异常,报错信息如下:
"before each" hook for "[e2e] User performs basic ....":
Unexpected characters near ",Instruction_Label:".
YML文件结构示例:
Instruction_Label: locator: '[data-cy="personalInfo_Instruction_Label"]' ignore: true Document_Type_Dropdown: locator: '[data-cy="personalInfo_Document_Type_Dropdown"]' ignore: true
解析代码如下:
cy.task('fileReader', ['./src/configs/yamls/kyc-ux/verifCenterPage.yml', './src/configs/yamls/kyc-ux/personalInfoPage.yml', './src/configs/yamls/kyc-ux/addressVerificationPage.yml', './src/configs/yamls/kyc-ux/countryOfResidencePage.yml', './src/configs/yamls/kyc-ux/documentVerificationPage.yml']).then(function (yamlList) { var yamlString = yamlList.map(function (item) { return item }) cy.wrap(YAML.parse(yamlString.toString())).as('elementFactory') })
此前代码运行正常,回退至历史可通过版本仍出现相同错误,求解决线索。
解决线索
- 修复YAML内容拼接逻辑:
yamlList是多个YAML文件内容的数组,直接调用toString()会在不同文件内容间自动添加逗号,导致合并后的字符串出现,Instruction_Label:这类破坏YAML语法的内容。需改用换行符拼接:var yamlString = yamlList.join('\n') // 用换行替代默认的逗号拼接 - 检查单个YAML文件的末尾格式:确保每个YAML文件末尾有换行,避免拼接后两个文件的内容直接连在一起引发语法错误。
- 验证合并后的YAML内容:在解析前打印合并后的字符串,排查是否存在多余符号或格式问题:
cy.log(yamlString) // 输出合并内容,直观检查语法异常 - 确认
fileReader任务的返回值:检查fileReader读取每个文件时是否引入了多余的逗号、特殊字符或格式错误。 - 清理缓存:回退版本后仍报错,可能是缓存残留,尝试删除
node_modules/.cache/cypress目录,或重新安装项目依赖。
内容的提问来源于stack exchange,提问作者Ziwdigforbugs
相关产品推荐
相关产品推荐

