如何跨各种文件共享 Cypress.io 中的 describe() 块,类似于 Mocha 的 'Shared Behaviour' 设施
How to share describe() block in Cypress.io across various files, similar to Mocha's 'Shared Behaviour' facility
我正在开发一个 Web 测试自动化框架,并且希望在一个柏树 ..spec.js 中的 describe()
块中提供一些功能文件,通过另一个柏树中存在的方法 ..spec.js file?
请阅读 Mocha 中提供的 Shared Behaviour 功能:
https://github.com/mochajs/mocha/wiki/Shared-Behaviours
我试过了,但没用。
1. 是否有可能实现类似于 Mocha Shared 步骤(如上所述)的东西?
2. 或者有没有类似于Cucumber-ruby/Pico-container的WORLD对象?
请指教。
您可以使用自定义命令 re-use 遍历多个文件。这可以通过以下步骤完成。
- 在
cypress/support/commands.js
中使用要在多个文件中使用的步骤创建自定义命令。您可以使用以下语法:
Cypress.Commands.add('customCommand', function() {
cy.get('object')
.clear()
.type('something')
// do other steps
})
- 创建自定义命令后,您可以通过以下语法在测试脚本中使用它:
describe('Description of the test', function () {
it('first scenario of the test', function () {
cy.customCommand()
})
})
结论:要在多个测试文件上共享步骤,您需要将共享步骤放在 commands.js 而不是测试文件中。
我正在开发一个 Web 测试自动化框架,并且希望在一个柏树 ..spec.js 中的 describe()
块中提供一些功能文件,通过另一个柏树中存在的方法 ..spec.js file?
请阅读 Mocha 中提供的 Shared Behaviour 功能:
https://github.com/mochajs/mocha/wiki/Shared-Behaviours
我试过了,但没用。 1. 是否有可能实现类似于 Mocha Shared 步骤(如上所述)的东西? 2. 或者有没有类似于Cucumber-ruby/Pico-container的WORLD对象?
请指教。
您可以使用自定义命令 re-use 遍历多个文件。这可以通过以下步骤完成。
- 在
cypress/support/commands.js
中使用要在多个文件中使用的步骤创建自定义命令。您可以使用以下语法:
Cypress.Commands.add('customCommand', function() {
cy.get('object')
.clear()
.type('something')
// do other steps
})
- 创建自定义命令后,您可以通过以下语法在测试脚本中使用它:
describe('Description of the test', function () {
it('first scenario of the test', function () {
cy.customCommand()
})
})
结论:要在多个测试文件上共享步骤,您需要将共享步骤放在 commands.js 而不是测试文件中。