我试图将Snowflake集成到我的Cypress测试中,但它在编译时不断抛出错误. 错误:

Error: Webpack Compilation Error
./node_modules/vm2/lib/resolver-compat.js
Module not found: Error: Can't resolve 'async_hooks' in 'C:\snowflake\node_modules\vm2\lib'
resolve 'async_hooks' in 'C:\snowflake\node_modules\vm2\lib'
  Parsed request is a module
  using description file: C:\snowflake\node_modules\vm2\Package.json (relative path: ./lib)
    Field 'browser' doesn't contain a valid alias configuration

try 了以下简单步骤:

  1. 已安装的 cypress
  2. 通过NPM安装snowflakeSDK
  3. 已创建等级库文件并导入:
const snowflake = require("snowflake-sdk");

当我运行规范文件时,我得到了如上的错误.

如果我将错误跟踪到文件resolver-compat.js,我可以看到导入失败的地方.

    const {AsyncResource} = require('async_hooks');

我已经手动完成了NPM安装async_hooks,但也没有运气.

Package.json

"devDependencies": {
    "cypress": "^11.2.0"
  },
  "dependencies": {
    "async_hooks": "^1.0.0",
    "snowflake-sdk": "^1.6.16"
  }

推荐答案

Snowflake-SDK是一个NodeJS包,所以在Cypress中你需要通过一个任务与它交互.

以下是从Snowflake文档中提取的基本连接任务.

cypress.config.js

const { defineConfig } = require("cypress");
var snowflake = require("snowflake-sdk");

let connectionId;

module.exports = defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      on("task", {
        snowflake: () => {
          var connection = snowflake.createConnection({
            account: "account",
            username: "user",
            password: "password",
            application: "application",
          });

          connection.connect(function (err, conn) {
            if (err) {
              console.error("Unable to connect: " + err.message);
            } else {
              console.log("Successfully connected to Snowflake.");
              // Optional: store the connection ID.
              connectionId = conn.getId();
            }
          })
          return null
        },
      });
    },
  },
})

Test

it('Connect to snowflake', () => {
  cy.task('snowflake')
})

如果没有正确的凭据,它会产生连接错误,但会证明包正在工作.

无法连接:对Snowflake的请求失败.

Javascript相关问答推荐

硬币兑换运行超时

在JavaScript中声明自定义内置元素不起作用

浮动Div的淡出模糊效果

为什么客户端没有收到来自服务器的响应消息?

当我try 将值更改为True时,按钮不会锁定

在VS代码上一次设置多个变量格式

为什么我的按钮没有从&q;1更改为&q;X&q;?

按下单键和多值

Phaserjs-创建带有层纹理的精灵层以自定义外观

我想使用GAS和HTML将从Electron 表格中获得的信息插入到文本字段的初始值中

OnClick更改Json数组JSX中的图像源

如何使本地html页面在重新加载时保持当前可隐藏部分的打开状态?

将相关数据组合到两个不同的数组中

在范围数组中查找公共(包含)范围

如何处理不带参数的redux thunk payloadCreator回调函数?

JSX/React -如何在组件props 中循环遍历数组

使用JavaScript或PHP从div ID值创建锚标记和链接

查找函数句柄的模块/文件

Qualtrics联合实验脚本随机化条件

为什么我找不到东西?