Cypress 13.6.5+TypeScript自定义命令配置失败,如何解决?
Cypress 13自定义命令"cy.myCommand is not a function"问题解决
问题原因
你的自定义命令文件路径不符合Cypress默认加载规则,且缺少必要的导入与类型配置,导致命令未被注册到Cypress实例中。
解决步骤
修正自定义命令文件路径
当前自定义命令文件路径cypress/e2e/cypress/support/commands.ts不符合Cypress目录规范,需将commands.ts移动到项目根目录下的cypress/support/文件夹中,最终路径应为cypress/support/commands.ts。确保命令文件被正确导入
Cypress 13的E2E测试模式默认以cypress/support/e2e.ts作为支持文件入口,需在该文件中导入自定义命令:import './commands'若项目中无
e2e.ts,可检查是否存在index.ts,并在对应入口文件中添加上述导入语句。添加TypeScript类型声明(可选但推荐)
为让TypeScript识别自定义命令、避免编辑器报错,可在cypress/support/commands.ts末尾添加类型声明:declare namespace Cypress { interface Chainable { myCommand(): Chainable<void>; } }验证Cypress配置文件
打开cypress.config.ts,确认e2e配置中的supportFile路径指向正确的支持入口文件,默认配置示例:import { defineConfig } from 'cypress' export default defineConfig({ e2e: { supportFile: 'cypress/support/e2e.ts', // 其他项目配置... } })
完成以上调整后,重新运行Cypress测试,自定义命令即可正常调用。
内容的提问来源于stack exchange,提问作者Martijn Dirkse
相关产品推荐
相关产品推荐

