1

在控制台中运行 Hardhat 测试后,npx hardhat test我决定能够设置断点将帮助我更快地迭代。

我怎样才能让 Webstorm 运行启动的底层函数,npx hardhat test以便我可以使用内置的调试器?

4

2 回答 2

4

从那以后,我发现安全帽在引擎盖下运行摩卡咖啡。

要在 WebStorm 中进行调试,您可以:

  1. 删除现有配置
  2. 创建一个新的 mocha 配置
  3. 在“节点选项”中设置任何配置。注意:由于我正在分叉主网,因此需要一段时间才能开始测试,所以我添加了--timeout 10000因为 mocha 的默认超时仅为2000ms
  4. 选择 mocha 包,WebStorm 默认不选择
  5. 设置你的测试文件模式
  6. 添加const {ethers} = require('hardhat');到您的测试文件,因为它不再在运行时由安全帽注入。
  7. 如果没有出现绿色调试图标,我成功关闭并重新打开 WebStorm。

此时,我可以在我的测试文件中成功设置断点,但不能在 MyContract.sol 文件中设置断点。这并不奇怪,因为合约是在运行之前编译的。

在此处输入图像描述

在此处输入图像描述

于 2021-06-25T20:02:13.793 回答
1
  1. package.json为您的 Hardhat 项目创建或打开文件。
  2. 添加testNPM 运行脚本并保存文件。你的 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"
  }
}
  1. 在编辑器窗格的左侧装订线中,应该会出现一个小播放图标,单击它,然后单击Debug "test"

我在这里更详细地介绍了这些说明,但这是一般的想法。https://allendefibank.medium.com/how-to-debug-solidity-contracts-in-webstorm-hardhat-2ea0d3c4d582

于 2021-08-12T11:56:15.240 回答