【问题标题】:Cypress and cypress-metamask plugin issue (connect ECONNREFUSED 127.0.0.1:9222)Cypress 和 cypress-metamask 插件问题(连接 ECONNREFUSED 127.0.0.1:9222)
【发布时间】:2022-06-22 23:04:49
【问题描述】:

我正在尝试将 cypress 测试集成到我的应用程序中,但为了执行 e2e 测试,我需要与 metamask 进行交互。我正在使用 cypress-metamask 插件 (https://www.npmjs.com/package/cypress-metamask),但无法让它工作。

运行测试返回以下错误:

cy.task('setupMetamask') 失败并出现以下错误:

对 http://localhost:9222/json/version 的请求失败,原因:连接 ECONNREFUSED 127.0.0.1:9222

这是测试:

describe('NFTicket', () => {
  beforeEach(() => {
    cy.setupMetamask();
    cy.changeMetamaskNetwork('localhost')
    cy.visit('/')
  });

  it('is expected to display a sussess message', () => {
    cy.get('[data-cy=title]').should('contain.text', 'MetaMask Detected')
  });
  
});

这就是我的 cypress/plugins/index.js 的配置方式:

module.exports = (on, config) => {
  require('cypress-metamask/plugins')(on);
  on('before:browser:launch', (browser = { isHeaded: true }, arguments_) => {
    if (browser.name === 'chrome') {
      arguments_.args.push('--remote-debugging-port=9222')
      arguments_.args.push('--disable-background-timer-throttling');
      arguments_.args.push('--disable-backgrounding-occluded-windows');
      arguments_.args.push('--disable-renderer-backgrounding');
    }
  })
}

【问题讨论】:

  • 这个只有chrome,你试过electron吗?
  • 目前仅支持 chrome

标签: javascript testing cypress web3js metamask


【解决方案1】:

在我们的项目中,我们也遇到了使用这个库的问题。我不记得它到底是什么,但总的来说我们无法解决它,然后我们将其更改为@synthetixio/synpress。在我们使用这个库的项目中,e2e 测试运行完美。

npm i @synthetixio/synpress

yarn add @synthetixio/synpress

可以在here 找到使用元掩码的有用命令列表。

【讨论】:

    【解决方案2】:

    请确保服务器已启动, 你可以在 /etc/hosts 文件中试试这个 127.0.0.1 localhost

    【讨论】:

    • 服务器肯定在运行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 2021-04-15
    相关资源
    最近更新 更多