在 WebStorm 中调试安全帽坚固性测试

问题描述 投票:0回答:4

在控制台中使用

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

如何让 Webstorm 运行由

npx hardhat test
启动的底层函数,以便我可以使用内置的调试器?

debugging webstorm solidity hardhat
4个回答
4
投票

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

要在 WebStorm 中调试,您可以:

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

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


4
投票
  1. 为您的 Hardhat 项目创建或打开
    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


0
投票

如果你使用打字稿,你需要导入 ts-mocha 而不是 mocha


-3
投票

webstorm 是否显示像 uint a = "a" 这样的错误?我已经安装了 solidity,hardhat 插件,但什么也没有。

© www.soinside.com 2019 - 2024. All rights reserved.