如何指定环境以将赛普拉斯测试指向正确的数据库凭据?
How to specify environment to point Cypress tests at the correct DB credentials?
下面是我在 cypress 测试中用来连接到 MySQL 数据库的 index.js
代码:
const mysql = require('mysql')
function queryTestDb(query, config) {
const connection = mysql.createConnection(config.env.db)
connection.connect()
return new Promise((resolve, reject) => {
connection.query(query, (error, results) => {
if (error) reject(error)
else {
connection.end()
return resolve(results)
}
})
})
}
module.exports = (on, config) => {
on('task', { queryDb: query => { return queryTestDb(query, config) }, });
require('cypress-grep/src/plugin')(config)
return config
}
目前,我的测试使用 cypress.json
中提供的数据库凭据:
const connection = mysql.createConnection(config.env.db)
但我希望框架运行在不同的环境下,因为数据库名称不同。
我已经创建了 qa.json
& staging.json
配置文件来存储数据库凭证,如下所示:
qa.json
:
{
"extends": "./cypress.json",
"baseUrl": "myUrl",
"env": {
"db": {
"host": "myHost",
"user": "myUser",
"password": "myPassword",
"database": "taltektc_qa"
}
}
}
staging.json
:
{
"extends": "./cypress.json",
"baseUrl": "myUrl",
"env": {
"db": {
"host": "myUrl",
"user": "myUser",
"password": "myPassword",
"database": "taltektc_stage"
}
}
}
这是我目前用于 运行 测试的命令:
npx cypress open --config-file staging.json
我试图在下面更新我的 index.js
,但我收到 Cypress is not defined
错误消息:
module.exports = (on, config) => {
on('task', { queryDb: query => { return queryTestDb(query, Cypress.config()) }, });
有人可以告诉我我的 index.js
中需要进行哪些更改,以便我可以指定在建立数据库连接时要使用的配置文件吗?
在 Node 插件任务中,config
参数等同于 browser-side 规范中的 Cypress.config()
。
您应该在应用 --config-file staging.json
后得到正确的配置解析,所以您只需要原始代码
module.exports = (on, config) => {
on('task', { queryDb: query => { return queryTestDb(query, config) }, });
打开runner后可以在settings/configuration
下查看解决了什么
下面是我在 cypress 测试中用来连接到 MySQL 数据库的 index.js
代码:
const mysql = require('mysql')
function queryTestDb(query, config) {
const connection = mysql.createConnection(config.env.db)
connection.connect()
return new Promise((resolve, reject) => {
connection.query(query, (error, results) => {
if (error) reject(error)
else {
connection.end()
return resolve(results)
}
})
})
}
module.exports = (on, config) => {
on('task', { queryDb: query => { return queryTestDb(query, config) }, });
require('cypress-grep/src/plugin')(config)
return config
}
目前,我的测试使用 cypress.json
中提供的数据库凭据:
const connection = mysql.createConnection(config.env.db)
但我希望框架运行在不同的环境下,因为数据库名称不同。
我已经创建了 qa.json
& staging.json
配置文件来存储数据库凭证,如下所示:
qa.json
:
{
"extends": "./cypress.json",
"baseUrl": "myUrl",
"env": {
"db": {
"host": "myHost",
"user": "myUser",
"password": "myPassword",
"database": "taltektc_qa"
}
}
}
staging.json
:
{
"extends": "./cypress.json",
"baseUrl": "myUrl",
"env": {
"db": {
"host": "myUrl",
"user": "myUser",
"password": "myPassword",
"database": "taltektc_stage"
}
}
}
这是我目前用于 运行 测试的命令:
npx cypress open --config-file staging.json
我试图在下面更新我的 index.js
,但我收到 Cypress is not defined
错误消息:
module.exports = (on, config) => {
on('task', { queryDb: query => { return queryTestDb(query, Cypress.config()) }, });
有人可以告诉我我的 index.js
中需要进行哪些更改,以便我可以指定在建立数据库连接时要使用的配置文件吗?
在 Node 插件任务中,config
参数等同于 browser-side 规范中的 Cypress.config()
。
您应该在应用 --config-file staging.json
后得到正确的配置解析,所以您只需要原始代码
module.exports = (on, config) => {
on('task', { queryDb: query => { return queryTestDb(query, config) }, });
打开runner后可以在settings/configuration
下查看解决了什么