Для автоматизации процесса тестирования в CI/CD пайплайнах часто используется Travis CI. Эта система позволяет настроить тестирование с использованием Mocha, одного из самых популярных фреймворков для тестирования в JavaScript. Travis CI поддерживает интеграцию с различными языками программирования и инструментами, включая Node.js, что делает его идеальным для запуска тестов Mocha.
Чтобы настроить Travis CI для запуска тестов Mocha, необходимо начать с организации правильной структуры проекта. Обычно это выглядит так:
/my-project
/node_modules
/test
/test-suite.js
package.json
.travis.yml
Для начала потребуется установить Mocha как зависимость проекта. Это можно сделать с помощью npm:
npm install --save-dev mocha
Установка через npm добавит Mocha в раздел
devDependencies вашего package.json, что
необходимо для корректной работы тестов в окружении CI.
В папке test создаются тестовые файлы. Например,
файл test/test-suite.js может содержать следующие
тесты:
const assert = require('assert');
describe('Математические операции', function() {
it('должен возвращать 4 при сложении 2 и 2', function() {
assert.strictEqual(2 + 2, 4);
});
it('должен возвращать 0 при вычитании 2 из 2', function() {
assert.strictEqual(2 - 2, 0);
});
});
Этот пример тестирует базовые арифметические операции. Для работы с
Mocha достаточно описать блоки describe и it,
чтобы разделить тесты на группы и определить их поведение.
В корневой директории проекта нужно создать файл конфигурации
.travis.yml. Этот файл будет указывать Travis CI, как и
когда запускать тесты. Пример базового файла конфигурации для Node.js
проекта с Mocha:
language: node_js
node_js:
- "14"
- "16"
- "18"
script:
- npm install
- npm test
Объяснение:
language: node_js — указывает Travis CI, что проект использует Node.js.
node_js — список версий Node.js, которые будут использованы для тестирования. В данном примере Travis CI будет запускать тесты на версиях 14, 16 и 18.
script — команды, которые нужно выполнить в процессе тестирования. Здесь указано две команды:
npm install — установка всех зависимостей.npm test — команда для запуска тестов. Если в
package.json указана команда test, то она
будет выполняться.Для того чтобы Travis CI знал, как запускать тесты, нужно настроить
скрипт test в файле package.json. Для этого
добавьте следующий раздел в ваш package.json:
{
"scripts": {
"test": "mocha"
}
}
Теперь при запуске npm test будет выполняться Mocha,
который будет искать все тесты в проекте и запускать их.
Если вашему проекту требуется конфиденциальная информация, такая как
ключи API или базы данных, можно использовать переменные окружения,
чтобы скрыть их от кода и сделать их доступными только в процессе CI.
Travis CI позволяет настраивать переменные окружения в интерфейсе или в
.travis.yml.
Пример настройки переменных окружения в .travis.yml:
env:
global:
- API_KEY=your_api_key_here
Этот способ позволяет безопасно передавать конфиденциальные данные в процессе тестирования.
Travis CI позволяет запускать тесты в нескольких средах (например, на
разных версиях Node.js). Это полезно для проверки совместимости кода с
различными версиями платформы. В вышеупомянутом примере используется
параметр node_js, который указывает Travis CI запускать
тесты на Node.js версиях 14, 16 и 18. Это позволяет убедиться, что
проект будет работать корректно на каждой из этих версий.
Для того чтобы получать подробную информацию о прохождении тестов, можно интегрировать Travis CI с различными сервисами для отчетности, такими как Coveralls или Codecov. Для этого необходимо установить соответствующие пакеты и добавить их в скрипты Travis CI.
Пример настройки отчета покрытия кода с помощью Coveralls:
npm install --save-dev coveralls
after_success:
- cat ./coverage/lcov-report/lcov-report/index.html | coveralls
В этом случае, после успешного выполнения тестов, Travis CI отправит отчет о покрытии кода в Coveralls.
Иногда в процессе тестирования может понадобиться использовать дополнительные инструменты, такие как Chai для утверждений или Sinon для создания мока и шпионов. Эти библиотеки можно установить через npm и интегрировать с Mocha.
Пример установки Chai:
npm install --save-dev chai
И использование Chai в тестах:
const chai = require('chai');
const assert = chai.assert;
describe('Математические операции', function() {
it('должен возвращать 4 при сложении 2 и 2', function() {
assert.equal(2 + 2, 4);
});
});
Эти библиотеки помогут сделать тесты более выразительными и удобными в использовании.
После того как конфигурация Travis CI настроена, проект готов к интеграции с системой CI. Весь процесс тестирования будет полностью автоматизирован, и каждый раз при изменении кода будет запускаться набор тестов Mocha, что позволит обнаружить возможные ошибки на ранних этапах разработки.