Cypress中如何定义无需导入即可全局使用的TypeScript Enum
这个需求完全可以实现,具体操作步骤如下:
步骤1:创建Enum单独定义文件
建议存放路径为cypress/support/constants/myEnum.ts(JS项目后缀改为.js即可):
- TypeScript版本代码:
export enum MyEnum{ A = "hello", B = "goodbye" }
- JavaScript版本代码(JS无原生enum,用对象模拟即可):
export const MyEnum = { A: "hello", B: "goodbye" }
步骤2:配置全局挂载
打开Cypress全局自动加载的入口文件:Cypress 10+版本E2E测试默认入口为cypress/support/e2e.ts,组件测试默认入口为cypress/support/component.ts,10以下旧版本统一入口为cypress/support/index.ts。
在对应入口文件中添加如下代码完成全局挂载:
- TypeScript版本代码(包含类型声明,避免IDE报错、提供类型提示):
import { MyEnum } from './constants/myEnum' // 全局类型声明 declare global { const MyEnum: typeof import('./constants/myEnum').MyEnum } // 挂载到全局对象 globalThis.MyEnum = MyEnum
如果你的TS仍提示找不到MyEnum,请检查项目tsconfig.json的include配置项,确保包含"cypress/support/**/*.ts"路径。
- JavaScript版本代码:
import { MyEnum } from './constants/myEnum' window.MyEnum = MyEnum
验证效果
配置完成后,不需要在自定义命令文件、测试用例文件中额外import,直接按照你示例的写法使用MyEnum即可。
内容的提问来源于stack exchange,提问作者ses
相关产品推荐
相关产品推荐

