我正在努力将最佳实践付诸实践,将用于赛普拉斯测试的现有文件转换成更适合导出和导入的格式。
support-file.js
export const1 = () => cy.get('#someId1');
export const2 = () => cy.get('#someId2');
export const3 = () => cy.get('#someId3');
export function myFunct1() {
// Do something
}
export function myFunct2() {
// Do something
}
export function myFunct3() {
// Do something
}
file-where-used.js
import {
const1, const2, const3,
myFunct1, myFunct2, myFunct3
}
// usage of the consts/functs below
我已经尝试过将它们格式化为不必分别导入的格式,但是我无法弄清楚……我想,也许将所有内容包装为一个类并导出,确实可以但仅当使用require
而不是import
时...而且我还发现导出const
变量很困难...
export const1 = () => cy.get('#someId1');
export const2 = () => cy.get('#someId2');
export const3 = () => cy.get('#someId3');
class myClass {
myFunct1() {
// Do something
}
myFunct2() {
// Do something
}
myFunct3() {
// Do something
}
}
module.exports = new myClass();
答案 0 :(得分:1)
您可以分几步解决问题。
自定义命令/功能
首先,您要创建像这样的自定义命令:
export function() {
// Do something
}
通过将该函数放入文件cypress/support/commands.js
中,您不必将其导入到集成文件中,但是您必须重写,就像这样:
Cypress.Commands.add('myFunct1', function () {
// Do something
})
您最终在集成文件中得到的是:
cy.myFunct1()
全局变量
您正在分配这样的全局变量:
export const1 = () => cy.get('#someId1');
export const2 = () => cy.get('#someId2');
export const3 = () => cy.get('#someId3');
首先将它们重写为常量:
const const1 = () => cy.get('#someId1');
const const2 = () => cy.get('#someId2');
const const3 = () => cy.get('#someId3');
总是需要将它们一个一个地导入,但是只要它们在一个文件中,就可以将它们合并。您可以这样将它们导入到测试文件中:
import {const1, const2, const3} from '<FILE_DIRECTORY>'
现在它们可以在整个测试文件中使用。