Отладка тестов жесткости на прочность в WebStorm

После запуска тестов Hardhat в консоли я решил, что возможность устанавливать точки останова поможет мне быстрее выполнять итерацию.

Как я могу заставить Webstorm запускать базовые функции, запущенные npx hardhat test так что я могу использовать встроенный отладчик?

3 ответа

С тех пор я обнаружил, что каска запускает мокко под капотом.

Для отладки в WebStorm вы можете:

  1. удалить существующие конфигурации
  2. создать новую конфигурацию мокко
  3. установите любые конфигурации в «Опции узла». Примечание: поскольку я разветвляю основную сеть, для запуска тестов требуется некоторое время, поэтому я добавил --timeout 10000 потому что по умолчанию тайм-аут мокко только 2000ms
  4. выберите пакет мокко, WebStorm не выбирает его по умолчанию
  5. установите шаблон тестового файла
  6. Добавлять const {ethers} = require('hardhat'); в ваш тестовый файл, потому что он больше не вводится с помощью hardhat во время выполнения.
  7. Если зеленый значок отладки не появляется, мне удалось закрыть и снова открыть WebStorm.

На этом этапе я смог успешно установить точки останова в моем тестовом файле, но не в файле MyContract.sol. Это неудивительно, учитывая, что контракт компилируется перед запуском.

  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

Если вы используете машинописный текст, вам нужно импортировать ts-mocha вместо mocha .

Другие вопросы по тегам