Примечание от переводчика
Здесь содержится перевод файла watch-mode.md. Если при нажатии на ссылку, содержащую последние правки в master ветке AVA, Вы не можете найти файл watch-mode.md
, то можете считать что перевод актуален.
Translations: Français, Italiano, Русский
В AVA включен интеллектуальный режим наблюдения. Режим наблюдения отслеживает все изменения в файлах и запускает необходимые тесты.
Вы можете включить режим наблюдения, используя --watch
или -w
флаги. Если AVA установлена глобально:
$ ava --watch
Или произвести настройку в Вашем package.json
файле:
{
"scripts": {
"test": "ava"
}
}
Запуск:
$ npm test -- --watch
Вы также можете сделать отдельный скрипт:
{
"scripts": {
"test": "ava",
"test:watch": "ava --watch"
}
}
И затем использовать его:
$ npm run test:watch
AVA использует chokidar
для отслеживания изменений в файлах. Модуль chokidar
установлен как опциональная зависимость, так как иногда он не может быть установлен на некоторых платформах. Режим наблюдения недоступен если chokidar
не установлен. В этом случае Вы увидите подобное сообщение:
The optional dependency chokidar failed to install and is required for --watch. Chokidar is likely not supported on your platform.
Please refer to the Пожалуйста обратитесь к документации chokidar
для решения проблемы с установкой.
В AVA есть разница между исходными файлами и файлами тестов. Как Вы можете себе представить файлы тестов содержат Ваши тесты. Исходные файлы все, что необходимо для запуска Ваших тестов, они могут содержать либо исходный код, либо тестовые сборки.
По умолчанию, AVA отслеживает изменения тестовых файлов, package.json
, и любых других .js
файлов. Файлы в определенных каталогах будут проигнорированы, модуль ignore-by-default
содержит список игнорируемых директорий.
Вы можете задать образцы для исходных файлов, используя [--source
CLI флаг] или добавив их в секцию ava
Вашего package.json
файла. Обратите внимание, что если Вы указывает шаблон с исключением каталогов, то директории из ignore-by-default
больше не будут игнорироваться, так что, Вам необходимо будет добавить их вручную.
Если Ваши тесты записывают данные на диск, то режим наблюдения может вызвать повторный запуск тестов. Если это произошло, Вам необходимо использовать --source
флаг.
AVA отслеживает от каких исходных файлов зависят Ваши тесты. Если Вы измените исходный файл, то будет вызван соответствующий тест. AVA произведет запуск всех тестов, если не получится определить какой тестовый файл зависит от измененного исходного файла.
Отслеживание зависимостей также работает для импортируемых модулей. Кастомные расширения и траспиллеры поддерживаются только через [--require
CLI флаг], а не изнутри Ваших тестовых файлов. Файлы, к которым обращаются через модуль fs
не отслеживаются.
Вы можете перезапустить все тесты, набрав r в терминале, и нажав Enter.
Иногда режим наблюдения может вести себя странно, например, перезапустить все тесты, хотя Вы ожидали запуск лишь одного. Для того, чтобы понять почему - воспользуйтесь режимом отладки:
$ DEBUG=ava:watcher npm test -- --watch
Для Windows используйте:
$ set DEBUG=ava:watcher
$ npm test -- --watch
Режим наблюдения является достаточно новым и может содержать ошибки, работать некорректно и так далее. Пожалуйста, сообщайте о любых проблемах, с которыми пришлось столкнуться. Спасибо!