Запуск отдельного теста в JavaScript с помощью Mocha
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Чтобы запустить один определённый тест в Mocha, воспользуйтесь методом only
вместе с it
или describe
:
describe('Набор тестов', function() {
it.only('сработает именно этот тест', function() {
// Код теста
});
});
describe.only('Здесь запустятся все тесты из этого блока', function() {
// Тесты
});
Метод only
обеспечивает исполнение выбранного вами теста или группы тестов и только их.
Также можно включить определённые тесты с помощью параметра --grep
, при этом не изменяя исходный код:
mocha --grep "фрагмент названия нужного теста"
Далее мы подробнее изучим использование этих методов и настройку процесса тестирования в Mocha.
Поиск тестов с помощью --grep
Флаг --grep
в Mocha функционирует как своего рода поисковик тестов. Вот как его использовать:
- Поиск по шаблону:
--grep
принимает строку или регулярное выражение, которое соответствует заголовкамdescribe
илиit
. - Структурирование и поиск: Организуйте тесты с помощью функции
describe()
, чтобы создать ясную иерархию пространств имён. Это облегчит поиск и запуск связанных тестов. - Package.json: Определите ваши наиболее часто используемые скрипты для запуска тестов в
package.json
. ## Как настроить npm для удобства
Для запуска тестов npm с флагом --grep
передайте параметр следующим образом:
npm test -- --grep "фрагмент названия теста"
Настройте скрипты в файле package.json
для удобного запуска команд.
Эффективное тестирование
- Контролируйте покрытие тестами: Убедитесь, что метод
.only()
не остаётся в коде и не прерывает общее покрытие тестами. Удаляйте.only
перед коммитом. - Быстрое прерывание при ошибках с
--bail
: Используйте--bail
, чтобы прервать процесс выполнения тестов после первой встретившейся ошибки, чтобы быстрее найти её причину.
Организация тестов
- Структурированность: Структура тестов должна быть чёткой и логичной. Это поможет при работе с
--grep
и.only
. - Фокус на задаче: Пользуйтесь
test.only()
, когда разрабатываете новую функцию или исправляете ошибку – это поможет вам сосредоточиться на текущей задаче.
Что делать, когда что-то идёт не так
Параметр --grep
может работать не так, как вы ожидаете, в случаях:
- Сложные шаблоны поиска: Слишком сложные регулярные выражения могут охватить больше тестов, чем вы планировали. Старайтесь ограничиваться простыми шаблонами.
- Пересечение поисковых шаблонов: Поисковые шаблоны, указанные в
mocha.opts
или командной строке, могут конфликтовать с--grep
. Учитывайте это для предотвращения проблем.
Визуализация
Визуально сравним подходы:
Набор тестов: [🐞, 🐜, 🕷, 🪲, 🪳]
Чтобы сфокусироваться на одном тесте, используем специальную команду:
mocha -g "Название конкретного теста"
Сачок для насекомых 🪰: [🐜]
# Представьте, что у вас в руках сачок с системой точного наведения!
Используйте локальную версию Mocha, чтобы избежать различий в версиях и непредсказуемого поведения.
Полезные материалы
- Mocha – надёжный, простой в использовании и гибкий JavaScript-фреймворк для тестирования — прочитайте больше о том, как выделить отдельные тесты с помощью метода
.only()
. - Mocha – надёжный, простой в использовании и гибкий JavaScript-фреймворк для тестирования — изучите использование метода
.skip
для пропуска определённых тестов. - Модуль Assert в документации Node.js — знакомьтесь с assert для реализации проверок в тестах Node.js.
- Chai — узнайте больше о Chai, библиотеке для проверки результатов, которую часто используют с Mocha.
- Sinon.JS — создавайте моки и шпионов с использованием Sinon.JS.
- Шпаргалка по модульному тестированию с Mocha, Chai, Sinon и Jest · GitHub — все необходимые сведения по модульному тестированию с Mocha.
- Настройка проекта на JavaScript и Node.js с Travis CI — интегрируйте тесты Mocha в Travis CI для автоматизации тестирования.