Мокко в режиме часов запускает набор дважды - PullRequest
1 голос
/ 27 февраля 2020

Когда я запускаю mocha в режиме просмотра и сохраняю файл, я часто вижу, что mocha коротко мигает «1 прохождение», прежде чем дать правильный результат.

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

Для дальнейшей диагностики проблемы я создал небольшой сценарий node.js, который использует fs.watch для регистрации событий файловой системы. Это показало, что когда я сохраняю файл, генерируется 3 или 4 события файловой системы. Я предполагаю, что это является причиной такого поведения, так как второе событие получено после того, как mocha запустил набор тестов.

Сначала я думал, что это проблема с Windows Defender. Но размещение исходного кода в папке, исключенной из Windows Защитник, похоже, не решил проблему (фактическая конфигурация находится вне моего контроля, это управляемая компанией установка Windows). Кажется, что не работает другое антивирусное программное обеспечение.

Почему это происходит, и есть ли способ исправить это, желательно у источника - почему один сохраненный файл вызывает несколько событий файловой системы?

А если не исправить, есть ли обходной путь, например, сделать mocha mocha за несколько миллисекунд до запуска пакета?

Я попытался создать 10-миллисекундную задержку в глобальном before блоке, но это просто привело к «0 прохождению» вместо «1 прохождения».

Я также попытался запустить mocha с * Опция 1017 * и помещение этого небольшого куска кода в пакет:

setTimeout(function() {
    run();
}, 10);

Тот же результат, что и раньше, теперь он просто мигает "0 проходит" вместо "1 проходит"

Редактировать:

Если я использую инструмент "touch" из ubuntu, работающего в WSL, чтобы коснуться файла, я не наблюдаю такого поведения. Если я использую минимальный neovim в той же самой Ubuntu (пустой файл инициализации), я наблюдаю это поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...