dco*_*ler 3 automated-tests cypress
我正在尝试设置 cypress-sql-server,但我使用的是 10.8.0 版本,它不使用 cypress.json 来配置环境。我发现的所有设置说明都涉及使用 cypress.json 来配置插件。我遇到了一个错误:
tasksqlServer:execute, SELECT 'Bob'
CypressError
cy.task('sqlServer:execute') failed with the following error:
The 'task' event has not been registered in the setupNodeEvents method. You must register it before using cy.task()
Fix this in your setupNodeEvents method here:
D:\git\mcare.automation\client\cypress\cypress.config.jsLearn more
node_modules/cypress-sql-server/src/commands/db.js:7:1
5 | }
6 |
> 7 | cy.task('sqlServer:execute', query).then(response => {
| ^
8 | let result = [];
9 |
Run Code Online (Sandbox Code Playgroud)
赛普拉斯.config.js
const { defineConfig } = require("cypress");
const sqlServer = require("cypress-sql-server");
module.exports = defineConfig({
e2e: {
setupNodeEvents(on, config) {
// allows db data to be accessed in tests
config.db = {
"userName": "user",
"password": "pass",
"server": "myserver",
"options": {
"database": "mydb",
"encrypt": true,
"rowCollectionOnRequestCompletion": true
}
}
// code from /plugins/index.js
const tasks = sqlServer.loadDBPlugin(config.db);
on('task', tasks);
return config
// implement node event listeners here
},
},
});
Run Code Online (Sandbox Code Playgroud)
testSQL.spec.js
describe('Testing SQL queries', () => {
it("It should return Bob", () => {
cy.sqlServer("SELECT 'Bob'").should('eq', 'Bob');
});
})
Run Code Online (Sandbox Code Playgroud)
我的版本:
tasksqlServer:execute, SELECT 'Bob'
CypressError
cy.task('sqlServer:execute') failed with the following error:
The 'task' event has not been registered in the setupNodeEvents method. You must register it before using cy.task()
Fix this in your setupNodeEvents method here:
D:\git\mcare.automation\client\cypress\cypress.config.jsLearn more
node_modules/cypress-sql-server/src/commands/db.js:7:1
5 | }
6 |
> 7 | cy.task('sqlServer:execute', query).then(response => {
| ^
8 | let result = [];
9 |
Run Code Online (Sandbox Code Playgroud)
这是Cypress v9cypress-sql-server当前给出的安装指令
插件文件
该插件可以在 cypress/plugins/index.js 文件中初始化,如下所示。
Run Code Online (Sandbox Code Playgroud)const sqlServer = require('cypress-sql-server'); module.exports = (on, config) => { tasks = sqlServer.loadDBPlugin(config.db); on('task', tasks); }
将其转换为Cypress v10+
const { defineConfig } = require('cypress')
const sqlServer = require('cypress-sql-server');
module.exports = defineConfig({
e2e: {
setupNodeEvents(on, config) {
// allows db data to be accessed in tests
config.db = {
"userName": "user",
"password": "pass",
"server": "myserver",
"options": {
"database": "mydb",
"encrypt": true,
"rowCollectionOnRequestCompletion": true
}
}
// code from /plugins/index.js
const tasks = sqlServer.loadDBPlugin(config.db);
on('task', tasks);
return config
},
},
})
Run Code Online (Sandbox Code Playgroud)
其他变体也有效,例如将该"db": {...}部分放在该部分下方"e2e: {...}",但不在该部分中"env": {...}。
赛普拉斯 v9说明
命令文件
该扩展提供了多组命令。您可以导入您需要的。
示例support/index.js文件。Run Code Online (Sandbox Code Playgroud)import sqlServer from 'cypress-sql-server'; sqlServer.loadDBCommands();
对于赛普拉斯 v10+
只需将此代码移至support/e2e.js
| 归档时间: |
|
| 查看次数: |
2234 次 |
| 最近记录: |