Truffle

如何使用內置調試器調試松露測試

  • January 12, 2022

所以我想在松露中使用命令行調試器。

為了測試我只是執行truffle test

我有一個空的 truffle.js 文件。

我可以在 javascript 測試中獲取我的交易 ID。當我執行時:

truffle debug 0xce1bc402758bd7b6995d82430214c283967371ade97b01bd46e1fe074ea0a4c2

我得到:

Error: No network specified. Cannot determine current network.

我猜這是因為在測試執行後鬆露關閉了測試網路?

我知道我可以使用 testrpc,但它給我帶來了很多問題。

有沒有辦法在他們新的內置測試框架中使用 truffle 調試?

謝謝

編輯 在嘗試使用 testrpc 時,我在每個測試案例之後都會收到此錯誤消息:Error: VM Exception while processing transaction: revert

這是我的 truffle.js

module.exports = {
 networks: {
   development: {
     host: "localhost",
     port: 8545,
     network_id: "*", // Match any network id
     gas: 6712388
   }

 }
};

但是當我註釋掉開發網路時,松露預設為“測試”網路,一切正常。

編輯2我應該注意到我的測試需要大量的氣體。所以我猜測恢復是因為預期存在的物體不是因為我沒有足夠的氣體來部署它。我嘗試增加 truffle.js 中的氣體限制,但由於其他一些錯誤而失敗……

有一個名為“truffle.js”的文件。在此文件中,您必須指定要使用的網路。

此外,在執行命令時,您可以指定要使用的網路:

更多資訊在這裡

  1. 使用ganache-cli, 的繼承者(有關詳細資訊,testrpc請參見此處)
  2. 執行ganache-cli如下:

ganache-cli –port=8545 –gasLimit=0xfffffffffff –account=0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef,100000000000000000000000000000000000000

如果您在測試中需要多個帳戶,則只需添加所需數量的帳戶--account=...(以空格分隔),並為每個帳戶使用不同的密鑰。

引用自:https://ethereum.stackexchange.com/questions/37525