Отладка тестов жесткости на прочность в WebStorm
После запуска тестов Hardhat в консоли я решил, что возможность устанавливать точки останова поможет мне быстрее выполнять итерацию.
Как я могу заставить Webstorm запускать базовые функции, запущенные
npx hardhat test
так что я могу использовать встроенный отладчик?
3 ответа
С тех пор я обнаружил, что каска запускает мокко под капотом.
Для отладки в WebStorm вы можете:
- удалить существующие конфигурации
- создать новую конфигурацию мокко
- установите любые конфигурации в «Опции узла». Примечание: поскольку я разветвляю основную сеть, для запуска тестов требуется некоторое время, поэтому я добавил
--timeout 10000
потому что по умолчанию тайм-аут мокко только2000ms
- выберите пакет мокко, WebStorm не выбирает его по умолчанию
- установите шаблон тестового файла
- Добавлять
const {ethers} = require('hardhat');
в ваш тестовый файл, потому что он больше не вводится с помощью hardhat во время выполнения. - Если зеленый значок отладки не появляется, мне удалось закрыть и снова открыть WebStorm.
На этом этапе я смог успешно установить точки останова в моем тестовом файле, но не в файле MyContract.sol. Это неудивительно, учитывая, что контракт компилируется перед запуском.
- Создайте или откройте
package.json
файл для вашего проекта Hardhat. - Добавить
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"
}
}
- В левом желобе панели редактора должен появиться маленький значок воспроизведения, щелкните его, а затем щелкните
Debug "test"
.
Я прохожу инструкции более подробно здесь, но это общая идея. https://allendefibank.medium.com/how-to-debug-solidity-contracts-in-webstorm-hardhat-2ea0d3c4d582
Если вы используете машинописный текст, вам нужно импортировать ts-mocha вместо mocha .