javascript - 使用 Cypress 连接到 SQL DB

标签 javascript sql npm database-connection cypress

我正在尝试使用 cypress 连接 SQL 数据库,然后是 NPM guide .所有依赖项都完全如前所述,但在运行时

 cy.sqlServer('SELECT Email FROM [MyDB].[dbo].[User] WHERE Name ="test"')

运行时出现如下错误。

CypressError: cy.task('sqlServer:execute') failed with the following error:

TypeError: No connection configuration given.

虽然我的 cypress.json 文件有我的数据库连接字符串。

Cypress .json

{
"baseUrl": "myurl",
"db": {
    "userName": "test",
    "password": "test",
    "server": "test\\test",
    "options": {
        "database": "test",
        "encrypt": true,
        "rowCollectionOnRequestCompletion" : true
    }
}    
}

下面是我的plugins/index.js文件

  const sqlServer = require('cypress-sql-server');
module.exports = (on, config) => {
  // `on` is used to hook into various events Cypress emits
  // `config` is the resolved Cypress config
  tasks = sqlServer.loadDBPlugin(config.db);
  on('task', tasks);
}

最佳答案

对于任何像我一样寻找解决方法的人:

出于某种原因,Cypress(我使用的是 3.8.2,我不确定 cypress-sql-server 作者使用的是哪个版本)看不到“db”的自定义属性。

一种方法(您可以通过多种方式实现)是只需要插件文件中的 cypress 配置并从那里引用您的自定义属性。

要做到这一点,只需将 plugins/index.js 更改为如下所示:

const sqlServer = require('cypress-sql-server');
const dbConfig = require('../../cypress.json');

module.exports = (on, config) => {
  tasks = sqlServer.loadDBPlugin(dbConfig.db);
  on('task', tasks);
}

关于javascript - 使用 Cypress 连接到 SQL DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57431534/

相关文章:

node.js - 如何为所有 Node 模块自动安装@types

javascript - 从json中获取特定信息

javascript - 如何从 JavaScript 中的子类调用父类的方法,以便可以访问父类的局部变量?

javascript - 最小间隔对象的算法

mysql - 1615 准备好的语句需要在 codeigniter 中重新准备

sql - 帮助在 SQL/NoSQL 混合(Sql 服务器/RavenDB)中对 EAV 进行建模

javascript - 等待嵌套的 forEach 行为

mysql - 如何从两个表中提取数据但使用一个偏移量和一个排序选项?

json - 获取 package.json 文件中另一个字段的值(npm)

node.js - 仅需要一个模块(如果已安装)