Отладка
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 --threads false |
Затем запустите эту конфигурацию в режиме отладки. IDE будет останавливаться на точках останова JavaScript/TypeScript, установленных в редакторе.
Node Inspector, например, Chrome DevTools
Vitest также поддерживает отладку тестов без IDE. Однако для этого требуется последовательное выполнение тестов. Используйте одну из следующих команд для запуска Vitest.
# To run in a single worker
vitest --inspect-brk --single-thread
# To run in a child process
vitest --inspect-brk --single-thread --no-threads
После запуска Vitest приостановит выполнение и будет ожидать подключения инструментов разработчика к NodeJS inspector. Вы можете использовать Chrome DevTools, открыв chrome://inspect
в браузере.
В режиме отслеживания изменений отладчик можно оставить открытым во время повторных запусков тестов, используя параметры --single-thread --isolate=false
.