在cy.origin中使用Cypress.require报找不到typescript模块,降级版本可解决
Cypress 12.6.0中使用Cypress.require触发"Cannot find module 'typescript'"错误
问题场景
我尝试使用Cypress 12.6.0新增的Cypress.require方法,在cy.origin回调中引入外部依赖。根据官方说明,该方法支持任意TypeScript模块。
尝试代码
test.js
module.exports = { foo: 'bar', };
test.cy.ts
describe('Some test', (): void => { it('should work', (): void => { cy.origin('https://example.com', (): void => { const test = Cypress.require('./test.js'); cy.log('test', test); }); }); });
Cypress配置文件
export default defineConfig({ e2e: { baseUrl: 'http://0.0.0.0:4200', supportFile: 'cypress/support/e2e.ts', defaultCommandTimeout: 10000, video: false, experimentalOriginDependencies: true, }, });
错误信息
运行测试用例时触发错误:
Error: Cannot find module 'typescript'
补充说明
我的Angular项目已正常使用TypeScript,Cypress运行TypeScript编写的测试套件完全正常,仅在使用Cypress.require时出现问题,且引入普通JS模块或TypeScript ES6模块都会触发该错误。
临时解决方法(2023年2月20日更新)
未找到问题根源的情况下,将Cypress降级至12.5.1版本,使用原生require替代Cypress.require后,测试可稳定运行,代码示例如下:
// test.cy.ts describe('Some test', (): void => { it('should work', (): void => { cy.origin('https://example.com', (): void => { const test = require('./test.js'); cy.log('test', test); }); }); });
内容的提问来源于stack exchange,提问作者FlorianTopf
相关产品推荐
相关产品推荐

