Запуск отдельного теста в JavaScript с помощью Mocha

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы запустить один определённый тест в Mocha, воспользуйтесь методом only вместе с it или describe:

JS
Скопировать код
describe('Набор тестов', function() {
  it.only('сработает именно этот тест', function() {
    // Код теста
  });
});

describe.only('Здесь запустятся все тесты из этого блока', function() {
  // Тесты 
});

Метод only обеспечивает исполнение выбранного вами теста или группы тестов и только их.

Также можно включить определённые тесты с помощью параметра --grep, при этом не изменяя исходный код:

Bash
Скопировать код
mocha --grep "фрагмент названия нужного теста"

Далее мы подробнее изучим использование этих методов и настройку процесса тестирования в Mocha.

Кинга Идем в IT: пошаговый план для смены профессии

Поиск тестов с помощью --grep

Флаг --grep в Mocha функционирует как своего рода поисковик тестов. Вот как его использовать:

  • Поиск по шаблону: --grep принимает строку или регулярное выражение, которое соответствует заголовкам describe или it.
  • Структурирование и поиск: Организуйте тесты с помощью функции describe(), чтобы создать ясную иерархию пространств имён. Это облегчит поиск и запуск связанных тестов.
  • Package.json: Определите ваши наиболее часто используемые скрипты для запуска тестов в package.json. ## Как настроить npm для удобства

Для запуска тестов npm с флагом --grep передайте параметр следующим образом:

Bash
Скопировать код
npm test -- --grep "фрагмент названия теста"

Настройте скрипты в файле package.json для удобного запуска команд.

Эффективное тестирование

  • Контролируйте покрытие тестами: Убедитесь, что метод .only() не остаётся в коде и не прерывает общее покрытие тестами. Удаляйте .only перед коммитом.
  • Быстрое прерывание при ошибках с --bail: Используйте --bail, чтобы прервать процесс выполнения тестов после первой встретившейся ошибки, чтобы быстрее найти её причину.

Организация тестов

  • Структурированность: Структура тестов должна быть чёткой и логичной. Это поможет при работе с --grep и .only.
  • Фокус на задаче: Пользуйтесь test.only(), когда разрабатываете новую функцию или исправляете ошибку – это поможет вам сосредоточиться на текущей задаче.

Что делать, когда что-то идёт не так

Параметр --grep может работать не так, как вы ожидаете, в случаях:

  • Сложные шаблоны поиска: Слишком сложные регулярные выражения могут охватить больше тестов, чем вы планировали. Старайтесь ограничиваться простыми шаблонами.
  • Пересечение поисковых шаблонов: Поисковые шаблоны, указанные в mocha.opts или командной строке, могут конфликтовать с --grep. Учитывайте это для предотвращения проблем.

Визуализация

Визуально сравним подходы:

Markdown
Скопировать код
Набор тестов: [🐞, 🐜, 🕷, 🪲, 🪳]

Чтобы сфокусироваться на одном тесте, используем специальную команду:

Bash
Скопировать код
mocha -g "Название конкретного теста"
Markdown
Скопировать код
Сачок для насекомых 🪰: [🐜]
# Представьте, что у вас в руках сачок с системой точного наведения!

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

Полезные материалы

  1. Mocha – надёжный, простой в использовании и гибкий JavaScript-фреймворк для тестирования — прочитайте больше о том, как выделить отдельные тесты с помощью метода .only().
  2. Mocha – надёжный, простой в использовании и гибкий JavaScript-фреймворк для тестирования — изучите использование метода .skip для пропуска определённых тестов.
  3. Модуль Assert в документации Node.js — знакомьтесь с assert для реализации проверок в тестах Node.js.
  4. Chai — узнайте больше о Chai, библиотеке для проверки результатов, которую часто используют с Mocha.
  5. Sinon.JS — создавайте моки и шпионов с использованием Sinon.JS.
  6. Шпаргалка по модульному тестированию с Mocha, Chai, Sinon и Jest · GitHub — все необходимые сведения по модульному тестированию с Mocha.
  7. Настройка проекта на JavaScript и Node.js с Travis CI — интегрируйте тесты Mocha в Travis CI для автоматизации тестирования.