Truffle
合約未在 Truffle 測試中部署
我正在嘗試對 Truffle 做一個簡單的測試,但似乎 deploy() 承諾永遠不會被執行。
var MyContract = artifacts.require('MyContract') contract('MyContract', function(accounts) { it('My Test', function () { MyContract.deployed().then(function (instance) { console.log('Deployed'); assert.equal(1, 2, "This should fail"); }).catch(function (e) { console.log(e); }) }) })
當我進行
truffle.cmd test --network ganache
測試時,它只會執行並且不會將任何內容記錄到控制台。似乎 deploy() 承諾中的任何程式碼都沒有被執行。如果我這樣做,console.log(MyContract)
我可以看到契約,所以它似乎是通過 Truffle 測試找到的。知道有什麼問題嗎?
您必須返回承諾:
... it('My Test', function () { return MyContract.deployed()... }); ...
或者,您可以使用非同步函式:
... it('My Test', async function () { var myContract = await MyContract.deployed(); console.log(myContract.address); ... }) ...