从 BrowserStack 调用 cy.sqlServer() Cypress 命令到内部数据库

问题描述 投票:0回答:1

我正在尝试在 BrowserStack 中为 Web 应用程序运行 Cypress。我可以在本地成功运行测试。当我尝试使用

browserstack-cypress run
将它们上传到 BrowserStack 时,测试失败,原因是:

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

> Failed to lookup instance on db.internalapps.lan - getaddrinfo ENOTFOUND db.internalapps.lan

问题是这些测试使用

cy.sqlServer()
npm 包中的
cypress-sql-server
命令来进行一些数据库设置,并且需要调用应用程序数据库。该 Web 应用程序面向公众,因此我只需要在计算机上本地执行这些 SQL 语句即可访问该数据库。我已经设置了本地服务器代理并在 BrowserStack 中验证了我上传的包,表示本地测试已开启。

BrowserStack.json:

"connection_settings": {
    "local": true,
    "local-identifier": "MyLocalConnection01"
},
sql-server cypress browserstack
1个回答
0
投票

我阅读了您的查询并了解您希望通过本地连接访问网络后面的数据库。 由于您的数据库只能从内部网络访问,因此不会发生连接,因为对于本地二进制文件,只能通过 TCP 进行 HTTP、HTTPS 和 Web Socket 连接,因为本地二进制文件在底层使用 HTTP 代理。

SQL 服务器需要不同的协议,例如 sqlserver:// 或 postgres:// 等,BrowserStack Local 二进制文件当前无法通过这些协议进行通信。因此,任何 SQL 协议都无法通过相同的方式工作。

© www.soinside.com 2019 - 2024. All rights reserved.