✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Как скрыть вывод JavaScript console.log в тестах Jest

103

Сегодня я работал в кодовой базе, в которой было много преднамеренных console.logвыходных данных во всех средах, кроме рабочей, поэтому они отображались в выходных данных тестов Jest. Было бы утомительно идти и удалять их по одному, поэтому я разработал эту простую настройку для одновременного подавления всего console.logвывода во время работы Jest.

Настройка Есть

Этот трюк основан на природной способности Jest издеваться над чем угодно. Что мы в основном будем делать, так это имитировать logметод consoleобъекта и оставлять другие методы нетронутыми.

Сначала нам нужно сказать Jest выполнить установочный файл перед запуском тестов. Для этого мы отредактируем jest.config.jsфайл, который обычно находится в корне вашего проекта, с другими свойствами конфигурации и добавим следующую строку:

setupFilesAfterEnv: ['/src/jest.setup.js']

Мы можем проверить в документации Jest, что setupFilesAfterEnvделает:

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

Теперь, когда мы запустим наши тесты, они сначала выполнят то jest.setup.js, что мы сейчас создадим.

Издевательство над console.log

Создайте файл src/setup.jsтам или там, где вы указали путь на предыдущем шаге. Затем вы добавите к нему это:

global.console = { log: jest.fn(), debug: console.debug, trace: console.trace, }

Это переопределяет logметод и разрешает другие. Так как я все же хотел иметь возможность что-то выводить в тестах, я сопоставил debugи trace. Вы можете сопоставить другие, которые могут вам понадобиться, например console.table, отображающие элементы в таблице, полезные для регистрации объектов или массивов. Честно говоря, пока я не написал это, я никогда не заглядывал на страницу объекта консоли в MDN, и там есть много интересных методов, таких как тот console.dir, который отображает интерактивный список свойств указанного объекта JavaScript .

Заключительные слова

Теперь ваш console.logвывод подавляется, пока выполняются ваши тесты Jest. Если вы работаете в команде, убедитесь, что вы сообщили остальным членам команды об этом изменении, задокументировав его, поскольку кто-то может испытывать стресс, пытаясь console.logчто-то сделать, и не увидев, где это должно быть.

Источник записи: startfunction.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее