如何在 Cypress 中编写可重用的 "before"?
How to write reusable "before" in Cypress?
我想编写可重用的“之前”部分,但无法将变量从主文件 (A.js) 传递到导入代码 (HelloUtil.js)。提前感谢您提出的任何建议。
A.js
import * as UTIL from "./HelloUtil"
let variableFileA = "Hello"
// I hope the imported 'before' section is able to get 'variableFileA'
describe(`Do something`, () => {
it('A "It" section', () => {
cy.log("....")
});
})
HelloUtil.js
before('Reusable "before" 1', () => {
cy.log("lets begin....")
});
before('Reusable "before" 2', () => {
cy.log("print variable:"+variableFileA)
});
我收到的结果:
不,这是行不通的。
你需要在HelloUtil.js
中定义variableFileA
变量,如果你想在那里使用变量。或者您可以将变量作为参数传递。但是你两者都不做。
能用的是这个:
utils.js
export const beforeFunc = () => {
cy
.log('Before func from utils.js');
};
test.js
import { beforeFunc } from './utils';
describe('My example test suite', () => {
before(beforeFunc);
});
如果你想传递一些参数,你可以这样做:
utils.js
export const beforeFunc = (greetings) => {
cy
.log(greetings);
};
test.js
import { beforeFunc } from './utils';
describe('My example test suite', () => {
before(() => beforeFunc('Hi'));
});
测试运行器的结果:
我会使用可以粘贴到任何部分的 custom command - 无论是之前、之后还是其他部分。例如:
import file from 'filePath'
Cypress.Commands.add('reusableBefore2', () => {
cy.log("print variable:" + file)
})
您可以随时调用它:cy.reusableBefore2()
我想编写可重用的“之前”部分,但无法将变量从主文件 (A.js) 传递到导入代码 (HelloUtil.js)。提前感谢您提出的任何建议。
A.js
import * as UTIL from "./HelloUtil"
let variableFileA = "Hello"
// I hope the imported 'before' section is able to get 'variableFileA'
describe(`Do something`, () => {
it('A "It" section', () => {
cy.log("....")
});
})
HelloUtil.js
before('Reusable "before" 1', () => {
cy.log("lets begin....")
});
before('Reusable "before" 2', () => {
cy.log("print variable:"+variableFileA)
});
我收到的结果:
不,这是行不通的。
你需要在HelloUtil.js
中定义variableFileA
变量,如果你想在那里使用变量。或者您可以将变量作为参数传递。但是你两者都不做。
能用的是这个:
utils.js
export const beforeFunc = () => {
cy
.log('Before func from utils.js');
};
test.js
import { beforeFunc } from './utils';
describe('My example test suite', () => {
before(beforeFunc);
});
如果你想传递一些参数,你可以这样做:
utils.js
export const beforeFunc = (greetings) => {
cy
.log(greetings);
};
test.js
import { beforeFunc } from './utils';
describe('My example test suite', () => {
before(() => beforeFunc('Hi'));
});
测试运行器的结果:
我会使用可以粘贴到任何部分的 custom command - 无论是之前、之后还是其他部分。例如:
import file from 'filePath'
Cypress.Commands.add('reusableBefore2', () => {
cy.log("print variable:" + file)
})
您可以随时调用它:cy.reusableBefore2()