Примечание от переводчика
Здесь содержится перевод файла 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:watchAVA использует 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Режим наблюдения является достаточно новым и может содержать ошибки, работать некорректно и так далее. Пожалуйста, сообщайте о любых проблемах, с которыми пришлось столкнуться. Спасибо!