Как отлаживать Jest-тесты при использовании Yarn 2 / Yarn PnP
Я бы хотел использовать node --debug-brk
функция, описанная в предыдущем ответе, и шутливые документы для отладки в проектах на основе npm / yarn 1, ноnode_modules/
это нет в нити 2 / PnP (Plug N Play) проектов на основе, так что эти инструкции не будут работать для меня.
Обычный способ доступа к двоичному файлу в пряжи 2 изyarn run --inspect-brk jest --runInBand
запускает сеанс отладки с терминала, но при подключении к инспектору удаленных целей Chrome через chrome://inspect
, мы получаем сообщение об ошибке о невозможности подключения к двоичному файлу jest.js, поскольку это путь к .zip
файл.
Uncaught Error: Cannot find module '/Users/MY_USERNAME/PATH_TO_MY_PROJECT/.yarn/cache/jest-npm-24.9.0-8ddb425e99-2.zip/node_modules/jest/bin/jest.js
Какие обходные пути доступны без перехода на Yarn 1?
3 ответа
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Jest",
"skipFiles": ["<node_internals>/**"],
"cwd": "${workspaceFolder}",
"runtimeExecutable": "yarn",
"runtimeArgs": ["run", "--inspect-brk", "jest"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"port": 9229
}
]
}
Обновление: описанный ниже обходной путь необходим для Node 12.15
и ниже. После12.16.1
, вы можете напрямую использовать следующую команду:
yarn run --inspect-brk jest --runInBand
Исправление, которое было добавлено в пряжу 12.16.1, здесь.
Заархивированный ответ для более старых версий Node, 12.15 и ниже
Один из вариантов - использовать yarn unplug
Перед использованием yarn run
yarn unplug jest
После этого с Jest in Yarn 2 и Chrome работает следующее: chrome://inspect
:
yarn run --inspect-brk jest --runInBand # any additional jest args
Обратной стороной этого подхода является то, что вам может потребоваться отменить unplug
перед проверкой в своей ветке, поскольку это описывается как краткосрочная мера, а не как долгосрочное состояние, в котором нужно оставить зависимость.
Вы также можете использовать
yarn bin
команда, чтобы выполнить это. Я смог запустить наши шуточные тесты, используя node и некоторые помощники флагов отладки (в контексте Yarn pnp), используя эту команду:
yarn node --inspect-brk --expose-gc $(yarn bin jest) test --runInBand --silent --logHeapUsage
Кредит - найдено решение, опубликованное в этой ветке проблем с шутками .