努力让 DayJs 可用于赛普拉斯的所有测试

Struggling to have DayJs available for all tests in cypress

我目前正在启动一个新的 Cypress 项目,要测试的应用程序非常“以日历为中心”,我将不得不经常使用日期。

我的问题是,如果不在每个规范文件中导入 DayJs,我就无法将其用于整个项目。

例如,在 test.spec.ts 中,这是有效的

import dayjs = require('dayjs');
    
describe('Some suite', () => {       
   it('Some Test', () => {
      // some stuff
      const myDate = dayjs('11-11-2022', 'dd-MM-YYYY' );
      // other stuff
   })
})

但是当我在 support/index.ts

中执行此操作时
import dayjs = require('dayjs')
    
declare namespace Cypress {        
    interface Cypress {
        dayjs: dayjs.Dayjs;
    }
}

然后这个在我的规范中

describe('Some suite', () => {       
    it('Some Test', () => {
       // some stuff
       const myDate = Cypress.dayjs('11-11-2022', 'dd-MM-YYYY' );
       // other stuff
    })
})

它说

Cypress.dayjs is not a function

知道如何完成这项工作吗? 感谢帮助

/cypress/support/index.ts中,将dayjs添加到全局Cypress中(就像以前包含momentjs一样)。

/cypress/support/index.ts

const dayjs = require('dayjs')

declare namespace Cypress {        
  interface Cypress {
    dayjs: dayjs.Dayjs;
  }
}

Cypress.dayjs = dayjs

现在 const myDate = Cypress.dayjs('11-11-2022', 'dd-MM-YYYY') 应该可以了。