如何重用现有赛普拉斯测试中的函数,并在新测试中调用它?
How to reuse a function from an existing Cypress test, and call it in a new one?
我有以下函数,它在父函数中。
// A function that creates a random string and will later pass this to a variable
function generate_random_string(string_length) {
let random_string = '';
let random_ascii;
for(let i = 0; i < string_length; i++) {
random_ascii = Math.floor((Math.random() * 25) + 97);
random_string += String.fromCharCode(random_ascii)
}
return random_string
}
var random_string = generate_random_string(6)
这个随机字符串生成器在不同场景的其他测试文件中有很多用途。我不想每次都复制和粘贴这个函数,而是想重用这个函数并在另一个测试文件中调用它。
我该如何设置?
我尝试在 commands.js
文件中创建自定义命令,如下所示:
Cypress.Commands.add("random_string_gen",
function generate_random_string(string_length) {
let random_string = '';
let random_ascii;
for(let i = 0; i < string_length; i++) {
random_ascii = Math.floor((Math.random() * 25) + 97);
random_string += String.fromCharCode(random_ascii)
}
return random_string
})
但是当我在我的测试文件中调用它时,这不起作用:
cy.get('#name').click()
cy.get('#name').random_string_gen()
我想在一个文件中重用该函数,并在另一个文件中调用它,但我不确定如何设置必要的 command/index JS 文件,所以一个让我入门的模板真的很棒有帮助!
只需在 cypress/support/commands.js
上创建自定义命令,如下所示:
Cypress.Commands.add('generate_random_string', (string_length) => {
let random_string = '';
let random_ascii;
for(let i = 0; i < string_length; i++) {
random_ascii = Math.floor((Math.random() * 25) + 97);
random_string += String.fromCharCode(random_ascii)
}
return random_string
});
然后,在您的测试规范文件中,您可以调用 cy.generate_random_string(5)
。
例如,这将向控制台打印一个随机生成的长度为 5 的字符串。
/// <reference types="Cypress" />
context('Whosebug', () => {
it('Whosebug', () => {
cy.generate_random_string(5).then((result) => {
console.log(result);
});
})
})
// Output: eauyy
我有以下函数,它在父函数中。
// A function that creates a random string and will later pass this to a variable
function generate_random_string(string_length) {
let random_string = '';
let random_ascii;
for(let i = 0; i < string_length; i++) {
random_ascii = Math.floor((Math.random() * 25) + 97);
random_string += String.fromCharCode(random_ascii)
}
return random_string
}
var random_string = generate_random_string(6)
这个随机字符串生成器在不同场景的其他测试文件中有很多用途。我不想每次都复制和粘贴这个函数,而是想重用这个函数并在另一个测试文件中调用它。
我该如何设置?
我尝试在 commands.js
文件中创建自定义命令,如下所示:
Cypress.Commands.add("random_string_gen",
function generate_random_string(string_length) {
let random_string = '';
let random_ascii;
for(let i = 0; i < string_length; i++) {
random_ascii = Math.floor((Math.random() * 25) + 97);
random_string += String.fromCharCode(random_ascii)
}
return random_string
})
但是当我在我的测试文件中调用它时,这不起作用:
cy.get('#name').click()
cy.get('#name').random_string_gen()
我想在一个文件中重用该函数,并在另一个文件中调用它,但我不确定如何设置必要的 command/index JS 文件,所以一个让我入门的模板真的很棒有帮助!
只需在 cypress/support/commands.js
上创建自定义命令,如下所示:
Cypress.Commands.add('generate_random_string', (string_length) => {
let random_string = '';
let random_ascii;
for(let i = 0; i < string_length; i++) {
random_ascii = Math.floor((Math.random() * 25) + 97);
random_string += String.fromCharCode(random_ascii)
}
return random_string
});
然后,在您的测试规范文件中,您可以调用 cy.generate_random_string(5)
。
例如,这将向控制台打印一个随机生成的长度为 5 的字符串。
/// <reference types="Cypress" />
context('Whosebug', () => {
it('Whosebug', () => {
cy.generate_random_string(5).then((result) => {
console.log(result);
});
})
})
// Output: eauyy