在 WebStorm 中调试 hardhat solidity 测试
Debug hardhat solidity tests In WebStorm
在使用 npx hardhat test
在控制台中进行 运行ning Hardhat 测试后,我决定能够设置断点将帮助我更快地迭代。
如何让 Webstorm 运行 由 npx hardhat test
启动的底层函数,以便我可以使用内置的调试器?
从那以后,我发现了安全帽 运行 引擎盖下的摩卡咖啡。
要在 WebStorm 中进行调试,您可以:
- 删除现有配置
- 创建新的 mocha 配置
- 设置'Node options'中的任何配置。注意:由于我正在分叉主网,因此需要一段时间才能开始测试,所以我添加了
--timeout 10000
因为 mocha 的默认超时仅为 2000ms
- select mocha 包,WebStorm 默认没有 select
- 设置您的测试文件模式
- 将
const {ethers} = require('hardhat');
添加到您的测试文件,因为它在 运行 时间内不再被 hardhat 注入。
- 如果没有出现绿色调试图标,我已成功关闭并重新打开 WebStorm。
此时我可以在我的测试文件中成功设置断点,但不能在 MyContract.sol 文件中设置。这并不奇怪,因为合约是在 运行.
之前编译的
- 为您的 Hardhat 项目创建或打开
package.json
文件。
- 添加
test
NPM 运行 脚本并保存文件。您的 package.json 应该看起来像这样。
{
"name": "hardhat-project",
"scripts": {
"test": "hardhat test"
},
"devDependencies": {
"@nomiclabs/hardhat-ethers": "2.0.2",
"@nomiclabs/hardhat-waffle": "2.0.1",
"chai": "4.3.4",
"ethereum-waffle": "3.4.0",
"ethers": "5.4.4",
"hardhat": "2.6.0"
}
}
- 在编辑器窗格的左侧间距中,应该会出现一个小播放图标,单击它然后单击
Debug "test"
。
我在这里更详细地阅读了说明,但这是总体思路。 https://allendefibank.medium.com/how-to-debug-solidity-contracts-in-webstorm-hardhat-2ea0d3c4d582
如果您使用打字稿,则需要导入 ts-mocha 而不是 mocha
在使用 npx hardhat test
在控制台中进行 运行ning Hardhat 测试后,我决定能够设置断点将帮助我更快地迭代。
如何让 Webstorm 运行 由 npx hardhat test
启动的底层函数,以便我可以使用内置的调试器?
从那以后,我发现了安全帽 运行 引擎盖下的摩卡咖啡。
要在 WebStorm 中进行调试,您可以:
- 删除现有配置
- 创建新的 mocha 配置
- 设置'Node options'中的任何配置。注意:由于我正在分叉主网,因此需要一段时间才能开始测试,所以我添加了
--timeout 10000
因为 mocha 的默认超时仅为2000ms
- select mocha 包,WebStorm 默认没有 select
- 设置您的测试文件模式
- 将
const {ethers} = require('hardhat');
添加到您的测试文件,因为它在 运行 时间内不再被 hardhat 注入。 - 如果没有出现绿色调试图标,我已成功关闭并重新打开 WebStorm。
此时我可以在我的测试文件中成功设置断点,但不能在 MyContract.sol 文件中设置。这并不奇怪,因为合约是在 运行.
之前编译的- 为您的 Hardhat 项目创建或打开
package.json
文件。 - 添加
test
NPM 运行 脚本并保存文件。您的 package.json 应该看起来像这样。
{
"name": "hardhat-project",
"scripts": {
"test": "hardhat test"
},
"devDependencies": {
"@nomiclabs/hardhat-ethers": "2.0.2",
"@nomiclabs/hardhat-waffle": "2.0.1",
"chai": "4.3.4",
"ethereum-waffle": "3.4.0",
"ethers": "5.4.4",
"hardhat": "2.6.0"
}
}
- 在编辑器窗格的左侧间距中,应该会出现一个小播放图标,单击它然后单击
Debug "test"
。
我在这里更详细地阅读了说明,但这是总体思路。 https://allendefibank.medium.com/how-to-debug-solidity-contracts-in-webstorm-hardhat-2ea0d3c4d582
如果您使用打字稿,则需要导入 ts-mocha 而不是 mocha