Существует множество руководств по тестированию JS, в большинстве из них используется какая-то среда тестирования, такая как mocha, какая-то инструментальная цепочка, такая как grunt, какая-то другая библиотека для этого и что-то еще для этого.

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

Сегодня в качестве упражнения я установил значок покрытия кода, набрав 100%, используя инструмент, который по умолчанию доступен всем: console.assert(condition)

Честно говоря, этот проект был относительно простым, и он появился после того, как суть уже была протестирована многими способами, но вы поняли: для него было прямо писать тесты и даже быстрее настраивать его для покрытия.

Что нужно знать о покрытии кода

Использование justconsole.assert() не дает вам баллов, вам нужен правильный синтаксический анализатор кода, способный охватить каждую часть вашего кода, и IstanbulJS справляется с этой частью довольно хорошо, и это беспроблемная утилита.

npm install --save-dev istanbul

istanbul cover test.js

Вы в основном закончили. Вы запускаете тот же тест, который выполняли ранее через npm test, за исключением того, что в конце вы увидите результат. Замените часть сценария вашего package.json уже и проверьте свое покрытие… круто?

Что вам нужно, чтобы увидеть покрытие на GitHub

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

Сделать его видимым помогает вовлекаться в новые проекты, в то время как в наши дни нельзя запретить тестирование каких-либо проектов с открытым исходным кодом, связанных с программным обеспечением.

Здесь есть два бесплатных помощника: один называется Travis Ci, удаленный сервер, используемый для автоматизированных задач непрерывной интеграции, и Coshops, который понимает файлы покрытия, созданные IstanbulJS, и показывает статистику и значок.

После того, как вы авторизуете свою учетную запись GitHub на этих двух веб-сайтах, все, что вам нужно сделать, это включить отслеживание своего репозитория и добавить .travis.yml файл для Трэвиса и "coveralls": "cat ./coverage/lcov.info | coveralls" под своими package.json скриптами, которые будут использовать istanbul для покрытия тестов.

Репозиторий как пример

Я создал репозиторий vanilla-code-coverge, сконфигурированный так, чтобы иметь минимально необходимый минимум для отображения значков сборки и покрытия в репозитории.

Если есть одна лишняя вещь, которую я мог бы предложить, это использовать consolemd в качестве дополнительной зависимости разработчика, как я сделал в classtrophobic test и других, чтобы вы могли легко выделить имя теста и сделать ОК или ошибку яркими. Так просто и в то же время так приятно.

Получайте удовольствие, тестируя и освещая как можно больше.