【问题标题】:Debug hardhat solidity tests In WebStorm在 WebStorm 中调试安全帽可靠性测试
【发布时间】:2021-06-25 19:52:12
【问题描述】:

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

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

【问题讨论】:

    标签: debugging webstorm solidity hardhat


    【解决方案1】:

    我后来发现安全帽在引擎盖下运行摩卡咖啡。

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

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

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

    【讨论】:

    • 我无法使用此配置从 *.test.ts 文件中的箭头运行单个测试,是吗?
    【解决方案2】:
    1. 为您的安全帽项目创建或打开 package.json 文件。
    2. 添加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"
      }
    }
    
    1. 在编辑器窗格的左侧装订线中,应该会出现一个小播放图标,单击它,然后单击Debug "test"

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

    【讨论】: