Отладка
TIP
При отладке тестов может потребоваться использовать аргумент командной строки --test-timeout
, чтобы тесты не прерывались по таймауту при остановке на точках останова.
VSCode
Быстрый способ отладки тестов в VSCode — использовать JavaScript Debug Terminal
. Откройте новый JavaScript Debug Terminal
и запустите npm run test
или vitest
напрямую. Это работает с любым кодом, запущенным в Node, и, следовательно, подходит для большинства JS-фреймворков для тестирования.
Вы также можете добавить отдельную конфигурацию запуска для отладки текущего тестового файла в VSCode:
{
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug Current Test File",
"autoAttachChildProcesses": true,
"skipFiles": ["<node_internals>/**", "**/node_modules/**"],
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"args": ["run", "${relativeFile}"],
"smartStep": true,
"console": "integratedTerminal"
}
]
}
Затем на вкладке отладки убедитесь, что выбрана конфигурация 'Debug Current Test File'. После этого откройте тестовый файл, который хотите отладить, и нажмите F5, чтобы начать отладку.
IntelliJ IDEA
Создайте конфигурацию запуска типа 'Node.js'. Используйте следующие настройки для запуска всех тестов в режиме отладки:
Setting | Value |
---|---|
Working directory | /path/to/your-project-root |
JavaScript file | ./node_modules/vitest/vitest.mjs |
Application parameters | run --pool forks |
Затем запустите эту конфигурацию в режиме отладки. IDE будет останавливаться на точках останова JavaScript/TypeScript, установленных в редакторе.
Node Inspector, например, Chrome DevTools
Vitest также поддерживает отладку тестов без IDE. Однако для этого требуется последовательное выполнение тестов. Используйте одну из следующих команд для запуска Vitest.
# Для запуска в одном воркере
vitest --inspect-brk --pool threads --poolOptions.threads.singleThread
# Для запуска в одном дочернем процессе
vitest --inspect-brk --pool forks --poolOptions.forks.singleFork
Если вы используете Vitest 1.1 или выше, вы также можете просто указать флаг --no-file-parallelism
:
# Если пул неизвестен
vitest --inspect-brk --no-file-parallelism
После запуска Vitest остановит выполнение и будет ждать, пока вы не откроете инструменты разработчика, которые могут подключаться к инспектору Node.js. Вы можете использовать Chrome DevTools для этого, открыв chrome://inspect
в браузере.
В режиме наблюдения вы можете держать отладчик открытым во время повторных запусков тестов, используя опции --poolOptions.threads.isolate false
.