带有摩卡的单元测试错误:超时超过20000ms

时间:2019-06-16 05:42:03

标签: mocha blockchain ethereum solidity ganache

当我尝试将合同发送给Ganache时,出现超时错误。我的代码如下,

const assert = require('assert');
const ganache = require('ganache-cli');
const Web3 = require('web3');
const web3 = new Web3(ganache.provider());
const {interface,bytecode} = require('../compile');

let accounts;
let inbox;

beforeEach(async() => {
accounts = await web3.eth.getAccounts();
inbox = await new web3.eth.Contract(JSON.parse(interface))
  .deploy({data: bytecode,arguments:['Hi There !'] })
  .send({from: accounts[0], gas:'1000000'});
});

describe("inbox", () => {
it('deploys a contract', () => {
    console.log(inbox);
 })
})

当我注释掉send方法(下面提供)时,程序运行没有任何问题。但是,将其重新添加会引入超时错误。无论我为Mocha超时分配多少时间,我仍然会遇到相同的错误。

  

.send({from:accounts [0],gas:'1000000'});

关于超时的类似帖子如下, Error: Timeout of 2000ms exceeded. For async tests and hooks. Unit test with mocha and chai

Unit test error with mocha and chai Timeout of 2000ms exceeded. For async tests and hooks

Mocha testing with promises: Error: Timeout of 2000ms exceeded

Mocha exceeding 2000ms timeout when returning a promise

以上解决方案均不适用于我(主要是谈论增加超时)。此外,我根据其他论坛的建议将web3库降级。但是,它也不起作用。

您可以在a different forum找到其他人发布的确切问题。显然,该问题还没有得到任何潜在的答案。

1 个答案:

答案 0 :(得分:0)

我安装了松露v5.0.24,并开始在松露控制台上解决了所有问题。