Разделение модульных тестов и интеграционных тестов

Мне интересно создавать полные издеваемые модульные тесты, а также тесты интеграции, которые проверяют правильность верности операции async. Мне нужна одна команда для тестов unit и одна для тестов integration, так что я могу запускать их отдельно в своих инструментах CI. Какой лучший способ сделать это? Инструменты, такие как мокко, и шутка, похоже, сосредоточены на одном способе делать что-то.

Единственная опция, которую я вижу, - использование mocha и наличие двух каталогов в каталоге.

Что-то вроде:

  • __unit__
  • __integration__

Затем мне нужно было бы как-то сказать mocha для запуска всех тестов __unit__ в каталоге src, а другой - для запуска всех тестов __integration__.

Мысли?

Ответ 1

Mocha поддерживает файл globbing и имя теста grepping, который можно использовать для создания "групп" тестов.

Префикс файла

test/unit_whatever_spec.js
test/int_whatever_spec.js

Затем запустите файлы с помощью

mocha test/unit_*_spec.js
mocha test/int_*_spec.js
mocha

Каталоги

test/unit/whatever_spec.js
test/int/whatever_spec.js

Затем запустите директории с

mocha test/unit
mocha test/int
mocha test/**/*_spec.js

Имена тестов

describe 'Unit::Whatever', ->

describe 'Integration::Whatever', ->

Затем запустите именованные блоки с помощью

mocha -g ^Unit::
mocha -g ^Integration::
mocha

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

NPM

Сохраните каждую тестовую команду в разделе package.json scripts, чтобы она легко запускалась с чем-то вроде npm run test:int.

{
  scripts: {
    "test": "mocha",
    "test:unit": "mocha -g ^Unit::",
    "test:int": "mocha -g ^Integration::"
  }
}

Ответ 2

mocha не поддерживает ярлык или категорию. Вы правильно понимаете. Вы должны создать две папки, единицу и интеграцию и вызвать мокку, как это

блок мокко интеграция мокко