![](/img/trans.png)
[英]Mocha: Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves
[英]How to fix Timeout exceeded error for async tests and hooks, ensure “done()” is called; if returning a Promise, ensure it resolves
我正在嘗試使用mocha和ganache部署簡單的合同,但出現此錯誤:Acontract 1)“在每個”鈎子之前“部署合同”
0 passing (30s)
1 failing
1) "before each" hook for "Deploys a Contract":
Error: Timeout of 30000ms exceeded. For async tests and hooks, ensure
"done()" is called; if returning a Promise, ensure it resolves.
合同編號:
pragma solidity ^0.4.17;
contract Acontract {
string public message; // new variable
function Acontract(string initialMessage) public {
message = initialMessage;
}
function setMessage(string newMessage) public {
message = newMessage;
}
}
測試文件代碼:
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 result;
beforeEach( async () => {
accounts = await web3.eth.getAccounts();
result = await new web3.eth.Contract(JSON.parse(interface))
.deploy ({ data: bytecode, arguments: ['WOW'] })
.send({ from: accounts[0], gas: '1000000'});
});
describe('Acontract', ()=> {
it('Deploys a Contract', async ()=>{
console.log(result)
});
});
如何解決此錯誤,代碼很簡單,我測試了獲取帳戶的權限,還可以,也可以部署,但發送代碼不起作用! 有什么建議么?
我遇到了類似的問題,並按以下方式解決了這個問題:( 您可以先嘗試2號 )。
const assert = require('assert');
const ganache = require('ganache-cli');
const Web3 = require('web3');
//Ganache Provider
const provider = ganache.provider();
const web3 = new Web3(provider);
const { interface, bytecode} = require('../compile');
let accounts;
let result;
beforeEach( async () => {
accounts = await web3.eth.getAccounts();
result = await new web3.eth.Contract(JSON.parse(interface))
.deploy ({ data: bytecode, arguments: ['WOW'] })
.send({ from: accounts[0], gas: '1000000'});
//Set provider
result.setProvider(provider);
});
describe('Acontract', ()=> {
it('Deploys a Contract', async ()=>{
console.log(result)
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.