问题描述
在控制台中使用 npx hardhat test
运行安全帽测试后,我决定能够设置断点将帮助我更快地迭代。
如何让 Webstorm 运行由 npx hardhat test
启动的底层函数,以便我可以使用内置的调试器?
解决方法
后来我发现安全帽在底层运行 mocha。
要在 WebStorm 中进行调试,您可以:
- 删除您现有的配置
- 创建新的 mocha 配置
- 在“节点选项”中设置任何配置。注意:由于我正在分叉主网,因此测试需要一段时间才能开始,所以我添加了
--timeout 10000
,因为 mocha 的默认超时仅为2000ms
- 选择mocha包,WebStorm默认不选择
- 设置您的测试文件模式
- 将
const {ethers} = require('hardhat');
添加到您的测试文件中,因为它在运行时不再由安全帽注入。 - 如果绿色调试图标没有出现,我就成功关闭并重新打开 WebStorm。
此时我可以在我的测试文件中成功设置断点,但不能在 MyContract.sol 文件中设置。鉴于合约是在运行之前编译的,这并不奇怪。