Spec-Zone.ru › Deno 2

deno test

Deno поставляется со встроенным средством запуска тестов, использующим API Deno.test(). О том, как писать тесты, см. руководство Основы тестирования. Об утверждениях см. @std/assert и @std/expect.

Запуск тестов

Запустите все тесты в текущем каталоге и его подкаталогах:

›_
deno test

Запустите тесты в определённых файлах:

›_
deno test src/fetch_test.ts src/signal_test.ts

Запустите тесты, соответствующие шаблону glob:

›_
deno test src/*.test.ts

Пропустите проверку типов:

›_
deno test --no-check

Фильтрация

Запустите только тесты, имена которых соответствуют строке или шаблону с --filter:

›_
# Run tests whose name contains "database"
deno test --filter "database"

# Run tests whose name matches a regular expression
deno test --filter "/^connect.*/"

Чтобы интерпретировать значение фильтра как регулярное выражение, заключите его в прямые косые черты (/), как в синтаксисе литералов регулярных выражений JavaScript. Фильтрация не влияет на шаги теста: если имя теста соответствует фильтру, выполняются все его шаги.

Чтобы задать, какие файлы тестов собирать изначально, укажите test.include и test.exclude в файле конфигурации. См. раздел Включение и исключение.

Запуск затронутых тестов

При работе над изменением можно запускать только затронутые им тесты, а не весь набор. Это разовые запуски, а не режим наблюдения.

--changed запускает модули тестов, затронутые файлами, изменёнными в git. Если значение не указано, используется рабочее дерево (индексированные, неиндексированные и неотслеживаемые файлы); передайте ссылку, чтобы также включить коммиты после общего предка с этой ссылкой:

›_
# Tests affected by uncommitted changes
deno test --changed

# Tests affected since branching off main
deno test --changed=origin/main

--related запускает модули тестов, зависящие от указанных исходных файлов, не обращаясь к git:

›_
# Tests that import src/util.ts
deno test --related=src/util.ts

Оба флага отфильтровывают собранные файлы тестов, оставляя только те, которые связаны с изменёнными или указанными файлами через граф модулей. О процессе работы и принципе отбора см. раздел Запуск затронутых тестов в руководстве по тестированию.

Разрешения

Тесты запускаются с той же моделью разрешений, что и deno run. Предоставьте разрешения для набора тестов:

›_
deno test --allow-read --allow-net

Режим наблюдения

Автоматически запускайте тесты повторно при изменении файлов:

›_
deno test --watch

Параллельное выполнение

Запускайте файлы тестов в нескольких рабочих потоках:

›_
deno test --parallel

По умолчанию --parallel использует число доступных процессоров. Используйте DENO_JOBS=<N>, чтобы задать число потоков:

›_
DENO_JOBS=4 deno test --parallel

Покрытие кода

Соберите данные о покрытии и сформируйте отчёт:

›_
deno test --coverage

Необработанные данные о покрытии записываются в каталог coverage/. Чтобы сформировать сводку на основе имеющихся данных о покрытии, используйте deno coverage:

›_
deno coverage coverage/

Также можно сформировать отчёт lcov для использования с внешними инструментами:

›_
deno coverage --lcov coverage/ > coverage.lcov

Чтобы завершать запуск с ошибкой, если покрытие опускается ниже заданного порога, укажите порог (например, deno coverage --threshold=90). Настройку порогов для отдельных метрик см. в разделе Пороговые значения покрытия.

Параметризованные тесты

Запускайте одно и то же тело теста для таблицы случаев с помощью Deno.test.each: для каждого случая регистрируется отдельный тест с независимым отчётом. О шаблонах имён и формах случаев см. раздел Параметризованные тесты.

Тестирование снимков

Сохраняйте значение и сравнивайте его с сохранённым эталоном при каждом запуске с помощью встроенного t.assertSnapshot, обновляя его с помощью --update-snapshots (-u). См. раздел Тестирование снимков.

Форматы отчётов

Выберите формат вывода с помощью --reporter. Доступны четыре встроенных формата:

  • pretty (по умолчанию): подробный вывод, удобный для чтения
  • dot: один символ на тест — краткий обзор
  • junit: формат JUnit XML для систем CI
  • tap: вывод в формате Test Anything Protocol
›_
deno test --reporter=dot
deno test --reporter=tap

Запишите отчёт JUnit XML в файл, сохранив человекочитаемый вывод pretty в терминале:

›_
deno test --junit-path=report.xml

Случайный порядок

Перемешайте порядок запуска тестов, чтобы выявить скрытые зависимости между ними:

›_
deno test --shuffle

Разделение на шарды

Разделите набор тестов между несколькими машинами с помощью --shard=<index>/<count>, где index начинается с 1. Обнаруженные файлы тестов сортируются для обеспечения стабильного порядка и делятся на <count> сбалансированных групп; запуск выполняется только для файлов из группы <index>:

›_
# On machine 1 of 3
deno test --shard=1/3

# On machine 2 of 3
deno test --shard=2/3

Разделение на шарды выполняется до --shuffle, поэтому на каждой машине для данного шарда запускаются одни и те же файлы независимо от начального значения для перемешивания.

Повторные попытки и запуски

Задайте значения по умолчанию для числа повторных попыток и запусков всего набора с помощью --retry и --repeats:

›_
# Re-run each failing test up to twice before reporting failure
deno test --retry=2

# Run every test three times and fail if any run fails
deno test --repeats=3

Если тест задаёт собственный параметр retry или repeats, он переопределяет флаг. О параметрах для отдельных тестов см. раздел Повторные попытки и запуски тестов.

Обнаружение утечек

Определите источник утекших асинхронных операций, таймеров или ресурсов:

›_
deno test --trace-leaks

Тестирование кода в документации

Выполняйте блоки кода в файлах JSDoc и Markdown как тесты:

›_
deno test --doc

Подробности см. в разделе Тесты документации.

Использование командной строки:
deno test [OPTIONS] [files]... [-- [SCRIPT_ARG]...]

Запускает тесты с помощью встроенного средства запуска тестов Deno.

Выполняет указанные модули, запускает все тесты, объявленные с помощью Deno.test(), и выводит результаты в стандартный поток вывода:

deno test src/fetch_test.ts src/signal_test.ts

Аргументы-каталоги раскрываются в список всех содержащихся в них файлов, соответствующих шаблону {*_,*.,}test.{js,mjs,ts,mts,jsx,tsx} или **/__tests__/**:

deno test src/

Параметры проверки типов

--check<CHECK_TYPE>необязательно

Задаёт поведение проверки типов. Эта подкоманда по умолчанию проверяет типы локальных модулей, поэтому передавать --check избыточно; передайте --check=all, чтобы также проверять типы удалённых модулей. Кроме того, можно использовать подкоманду 'deno check'.

--no-check<NO_CHECK_TYPE>необязательно

Пропускает проверку типов. Если указано значение "remote", диагностические ошибки удалённых модулей будут игнорироваться.

Параметры управления зависимостями

--cached-only

Требует, чтобы удалённые зависимости уже находились в кэше.

--frozen<BOOLEAN>необязательно

Завершает работу с ошибкой, если файл блокировки устарел.

--import-map<FILE>

Загружает файл карты импортов из локального файла или удалённого URL-адреса.

--lock<FILE>необязательно

Проверяет указанный файл блокировки. (Если значение не указано, используется значение по умолчанию "./deno.lock".)

--no-lock

Отключает автоматический поиск файла блокировки.

--no-npm

Не разрешает модули npm.

--no-remote

Не разрешает удалённые модули.

--node-modules-dir<MODE>необязательно

Выбирает режим каталога node_modules для пакетов npm (не путь). Возможные значения: auto (создать локальный каталог node_modules и установить в него пакеты npm), manual (использовать существующий локальный каталог node_modules, не изменяя его), none (не использовать локальный каталог node_modules; разрешать пакеты npm из глобального кэша). Если флаг передан без значения, по умолчанию используется auto.

--node-modules-linker<MODE>

Задаёт режим компоновщика для пакетов npm (isolated или hoisted).

--reload, -r<CACHE_BLOCKLIST>необязательно

Перезагружает кэш исходного кода (повторно компилирует TypeScript). Если значение не указано, перезагружается всё. Передайте список спецификаторов, разделённых запятыми, чтобы перезагрузить только указанные модули; npm: перезагружает все модули npm; npm:chalk перезагружает один модуль npm; jsr:@std/http/file-server,jsr:@std/assert/assert-equals перезагружает указанные модули.

--vendor<vendor>необязательно

Включает или отключает использование локального каталога vendor для удалённых модулей и каталога node_modules для пакетов npm.

Параметры

--allow-scripts<PACKAGE>необязательно

Разрешает запуск скриптов жизненного цикла npm для указанных пакетов. Примечание: скрипты будут выполняться только при использовании каталога node_modules (--node-modules-dir).

--cert<FILE>

Загружает центр сертификации из файла в кодировке PEM.

--conditions<conditions>

Используйте этот аргумент, чтобы указать пользовательские условия для экспорта пакетов npm. Также можно использовать переменную окружения DENO_CONDITIONS. .

--config, -c<FILE>

Настраивает различные аспекты Deno, включая TypeScript, проверку кода и форматирование кода. Обычно файл конфигурации называется deno.json или deno.jsonc и обнаруживается автоматически; в таком случае этот флаг не требуется.

--env-file<FILE>необязательно

Загружает переменные окружения из локального файла. Используется только первая переменная окружения с заданным ключом. Существующие переменные окружения процесса не перезаписываются: если в окружении уже есть переменные с такими именами, их значения сохраняются. Если в файле .env несколько объявлений одной переменной окружения, применяется первое найденное. Порядок определяется последовательностью файлов, переданных в качестве аргументов.

--ext<ext>

Задаёт тип содержимого для указанного файла.

--hide-stacktraces

Скрывает трассировки стека для ошибок в результатах неудачных тестов.

--ignore<ignore>

Игнорирует файлы.

--location<HREF>

Значение globalThis.location, используемое некоторыми веб-API.

--minimum-dependency-age<minimum-dependency-age>

(Нестабильный параметр) Возраст в минутах, длительность ISO-8601 или абсолютная временная метка RFC3339 (например, '120' — два часа, 'P2D' — два дня, '2025-09-16' — дата отсечения, '2025-09-16T12:00:00+00:00' — время отсечения, '0' — отключение).

--no-config

Отключает автоматическую загрузку файла конфигурации.

--parallel

Запускает тестовые модули параллельно. По умолчанию степень параллелизма равна количеству доступных процессоров или значению переменной окружения DENO_JOBS.

--preload<FILE>

Список файлов, которые будут выполнены до основного модуля.

--require<FILE>

Список модулей CommonJS, которые будут выполнены до основного модуля.

--seed<NUMBER>

Задаёт начальное значение генератора случайных чисел.

--v8-flags<V8_FLAGS>необязательно

Чтобы просмотреть список всех доступных флагов, используйте --v8-flags=--help. Флаги также можно задать с помощью переменной окружения DENO_V8_FLAGS. Флаги, заданные этим параметром, добавляются после переменной окружения DENO_V8_FLAGS.

Параметры отладки

--inspect<HOST_PORT>необязательно

Включает инспектор на узле и порту: [по умолчанию: 127.0.0.1:9229]. Узел и порт указывать необязательно. При использовании порта 0 будет назначен случайный свободный порт.

--inspect-brk<HOST_PORT>необязательно

Включает инспектор на узле и порту, ожидает подключения отладчика и приостанавливает выполнение в начале пользовательского скрипта.

--inspect-wait<HOST_PORT>необязательно

Включает инспектор на узле и порту и ожидает подключения отладчика перед запуском пользовательского кода.

Параметры тестирования

--changed<REF>необязательно

Запускает только тестовые модули, на которые повлияли файлы, изменённые в git. Если значение не указано, используются незакоммиченные изменения (добавленные в индекс, неиндексированные и неотслеживаемые). Передайте ссылку git для сравнения, например --changed=main или --changed=HEAD~1.

--clean

Очищает каталог временных данных профиля покрытия перед запуском тестов. Примечание: последовательный или параллельный запуск нескольких вызовов deno test --clean`` для одного и того же каталога покрытия может привести к состояниям гонки.

--coverage<DIR>необязательно

Собирает данные профиля покрытия в DIR. Если DIR не указан, используется 'coverage/'. Этот параметр также можно задать с помощью переменной окружения DENO_COVERAGE_DIR.

--coverage-raw-data-only

Собирает только необработанные данные о покрытии, не создавая отчёт.

--coverage-threshold<PERCENT>

Завершает работу с ошибкой, если покрытие ниже указанного процента (0–100). Требуется --coverage.

--doc

Выполняет блоки кода в JSDoc и Markdown.

--fail-fast<N>необязательно

Останавливается после N ошибок. По умолчанию выполнение прекращается после первой ошибки.

--filter<filter>

Запускает тесты, в имени которых есть эта строка или шаблон регулярного выражения.

--junit-path<PATH>

Записывает отчёт о тестировании в формате JUnit XML по пути PATH. Используйте '-' для вывода в stdout; это значение используется по умолчанию, если PATH не указан.

--no-run

Кэширует тестовые модули, но не запускает тесты.

--permit-no-files

Не возвращает код ошибки, если файлы не найдены.

--related<related>

Запускает только тестовые модули, зависящие от указанных исходных файлов.

--repeats<NUMBER>

Запускает каждый тест ещё NUMBER раз. Каждый повторный запуск должен завершиться успешно. Параметры repeats, заданные самими тестами, имеют приоритет.

--reporter<reporter>

Выбирает используемый формат отчёта. По умолчанию используется 'pretty'.

--retry<NUMBER>

Повторно запускает неудачные тесты до NUMBER раз. Тест считается пройденным, если успешна хотя бы одна попытка. Параметры retry, заданные самими тестами, имеют приоритет.

--sanitize-ops

Включает санитайзер операций, который гарантирует завершение всех асинхронных операций, запущенных в тесте, до его окончания.

--sanitize-resources

Включает санитайзер ресурсов, который гарантирует закрытие всех ресурсов, открытых в тесте, до его окончания.

--shard<INDEX/COUNT>

Запускает только тестовые файлы для фрагмента INDEX из COUNT, например --shard=2/3.. Найденные тестовые файлы сортируются и разбиваются на COUNT последовательных групп; нумерация INDEX начинается с 1. Это удобно для распределения запуска между несколькими компьютерами.

--shuffle<NUMBER>необязательно

Перемешивает порядок запуска тестов.

--trace-leaks

Включает отслеживание утечек. Полезно при отладке операций с утечками в тестах, но увеличивает время их выполнения.

--update-snapshots, -u

Обновляет снимки, созданные с помощью t.assertSnapshot(), вместо завершения с ошибкой при несовпадении.

Параметры отслеживания файлов

--no-clear-screen

Не очищает экран терминала в режиме отслеживания.

--watch<FILES>необязательно

Отслеживает изменения файлов и автоматически перезапускает процесс. По умолчанию отслеживаются локальные файлы из графа модулей точки входа. Дополнительные пути можно отслеживать, передав их в качестве аргументов этому флагу.

--watch-exclude<FILES>необязательно

Исключает указанные файлы и шаблоны из режима отслеживания.

Последнее обновление: 6 июля 2026 г.

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/test

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API