В этой статье показано, как мы можем запускать тесты Mocha Chai в Gitlab CI Pipeline. В этой статье я шаг за шагом пройдусь по всем этапам, начиная с настройки тестового проекта и конвейера. Перед этим было бы здорово начать с лучшего понимания Mocha, Chai и Gitlab.

Что такое Мокко Чай?

В тестировании программного обеспечения Mocha и Chai на самом деле являются двумя отдельными средами тестирования для JavaScript. Mocha — это среда тестирования JavaScript, которая предоставляет структуру для организации и запуска тестов, а Chai — это библиотека утверждений, предоставляющая набор функций для написания более выразительных и понятных утверждений.

Mocha и Chai можно использовать для создания и запуска автоматических тестов кода JavaScript. Mocha предоставляет основу для написания и организации наборов тестов, а Chai предоставляет функции для проверки поведения тестируемого кода.

Что такое Гитлаб?

GitLab — это веб-менеджер репозитория Git, который обеспечивает управление исходным кодом, непрерывную интеграцию и развертывание, отслеживание проблем и многое другое. Это полная платформа DevOps, которая позволяет разработчикам совместно работать над кодом, тестировать и развертывать приложения, а также отслеживать их производительность.

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

Некоторые из функций, предоставляемых GitLab, включают в себя:

  • Управление репозиторием Git с поддержкой ветвления, слияния и управления версиями
  • Инструменты отслеживания проблем и управления проектами
  • Непрерывные конвейеры интеграции и развертывания
  • Инструменты для проверки кода и совместной работы
  • Инструменты мониторинга и аналитики для отслеживания производительности и использования приложений

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

Предпосылки

  1. Аккаунт Gitlab
  2. Node.js загружен и установлен. Ссылка: ссылка

Настройка теста мокко-чай

1. Создайте новую папку для вашего нового проекта. В новой папке с помощью терминала установите зависимости для Mocha, Chai и Mocha Junit Reporter.

npm install mocha chai mocha-junit-reporter --save-dev

2. Создайте простой тестовый файл, например, с именем basicOperation.spec.js.

const assert = require('assert');

describe('Mathematical Operations - Test Suite', function() {
    this.timeout(500);
    const a = 20;
    const b = 10;

    it('Addition of two variables', function(done) {
        this.timeout(300);
        setTimeout(done,100);
        const c = a+b;
        assert.equal(c,30);
    });
    
    it('Substraction of two variables', function() {
        const c = a-b;
        assert.equal(c,10);
    });

    it('Multiplication of two variables', function() {
        const c = a*b;
        assert.equal(c,200);
    });

    it('Division of two variables', function() {
        const c = a/b;
        assert.equal(c,2);
    });
});

В файле package.json добавьте следующие конфигурации:

{
  "scripts": {
    "test": "mocha '**/*.spec.js' --reporter mocha-junit-reporter --reporter-options mochaFile=junit.xml"
  },
  "devDependencies": {
    "chai": "^4.3.7",
    "mocha": "^10.2.0",
    "mocha-junit-reporter": "^2.2.0"
  }
}

Настройка конвейера

Создайте файл с именем .gitlab-ci.yml и настройте этапы тестирования. Следующая конфигурация позволит вам использовать средство запуска Gitlab по умолчанию и сохранить отчет junit.xml в качестве артефакта конвейера.

image: node:latest

cache:
  paths:
    - node_modules/

stages:
  - test

test:
  stage: test
  script:
    - npm install
    - npm test
  artifacts:
    when: always
    reports:
      junit:
        - junit.xml

Вставьте свой проект в проект Gitlab. Каталог вашего тестового проекта будет выглядеть примерно так, как только все будет настроено. Название проекта в этом примере называется mocha-basic.

Запустите свой конвейер, и в отчете о конвейерах вы сможете увидеть следующий тестовый отчет.