Отладка
TIP
При отладке тестов могут быть полезны следующие опции:
--test-timeout=0
для предотвращения тайм-аута тестов при остановке на точках останова--no-file-parallelism
для предотвращения параллельного выполнения тестовых файлов
VS Code
Быстро отладить тесты можно в VS Code с помощью JavaScript отладочного терминала
. Откройте новый JavaScript отладочный терминал
и запустите npm run test
или vitest
напрямую. Этот способ работает с любым кодом, выполняемым в Node.js, поэтому будет совместим с большинством JS-фреймворков для тестирования.
Вы также можете добавить отдельную конфигурацию запуска для отладки тестового файла в VS Code:
{
// Для получения дополнительной информации посетите: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Отладка текущего тестового файла",
"autoAttachChildProcesses": true,
"skipFiles": ["<node_internals>/**", "**/node_modules/**"],
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"args": ["run", "${relativeFile}"],
"smartStep": true,
"console": "integratedTerminal"
}
]
}
Затем на вкладке отладки убедитесь, что выбрана «Отладка текущего тестового файла». После этого вы можете открыть тестовый файл, который хотите отладить, и нажать F5, чтобы начать отладку.
Режим браузера
Для отладки режима браузера Vitest передайте в CLI --inspect
или --inspect-brk
или укажите это в вашей конфигурации Vitest:
vitest --inspect-brk --browser --no-file-parallelism
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
inspectBrk: true,
fileParallelism: false,
browser: {
provider: 'playwright',
instances: [{ browser: 'chromium' }],
},
},
});
По умолчанию Vitest использует порт 9229
в качестве порта отладки. Вы можете переопределить его, передав значение для --inspect-brk
:
vitest --inspect-brk=127.0.0.1:3000 --browser --no-file-parallelism
Используйте следующую составную конфигурацию VSCode для запуска Vitest и подключения отладчика к браузеру:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Запуск Vitest в браузере",
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"console": "integratedTerminal",
"args": ["--inspect-brk", "--browser", "--no-file-parallelism"]
},
{
"type": "chrome",
"request": "attach",
"name": "Подключение к Vitest в браузере",
"port": 9229
}
],
"compounds": [
{
"name": "Отладка Vitest в браузере",
"configurations": ["Подключение к Vitest в браузере", "Запуск Vitest в браузере"],
"stopAll": true
}
]
}
IntelliJ IDEA
Создайте конфигурацию запуска для Vitest. Используйте следующие настройки для запуска всех тестов в режиме отладки:
Настройка | Значение |
---|---|
Рабочий каталог | /path/to/your-project-root |
Затем запустите эту конфигурацию в режиме отладки. IDE остановится на точках останова JS/TS, установленных в редакторе.
Инструмент Node Inspector, например Chrome DevTools
Vitest также поддерживает отладку тестов без использования IDE. Однако при этом тесты не должны запускаться параллельно. Используйте одну из следующих команд для запуска Vitest:
# Для запуска в одном потоке
vitest --inspect-brk --pool threads --poolOptions.threads.singleThread
# Для запуска в одном процессе
vitest --inspect-brk --pool forks --poolOptions.forks.singleFork
# Для запуска в режиме браузера
vitest --inspect-brk --browser --no-file-parallelism
Если вы используете Vitest 1.1 или выше, вы также можете указать флаг --no-file-parallelism
:
# Если пул неизвестен
vitest --inspect-brk --no-file-parallelism
После запуска Vitest он остановит выполнение и будет ожидать открытия инструментов разработчика, которые могут подключиться к инспектору Node.js. Для этого вы можете использовать Chrome DevTools, открыв chrome://inspect
в браузере.
В режиме наблюдения вы можете оставлять отладчик открытым во время повторных запусков тестов, используя опцию --poolOptions.threads.isolate false
.