Как настроить mocha для запуска модульных тестов, а затем запустить сервер и запустить интеграционные тесты - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть модульные тесты и интеграционные тесты, которые нужно запустить с помощью одной команды npm run mocha.Пакет до моих интеграционных тестов был настроен и правильно работал с mocha.opts, включая шаг before:

test/beforeTests.js (sets up some important variables)
test/*.x.js (bulk of the tests, all the files ending in .x.js are run)

При включении моих интеграционных тестов модульный тест завершается неудачно, потому что работающий сервер конфликтует с некоторой заглушкойфункции.Поэтому я хотел сначала запустить модульные тесты, затем запустить сервер, запустить интеграционные тесты и закрыть сервер.Что я пробовал, изменив mocha.opts на:

test/beforeTests.js (sets up some important variables)
test/*.x.js (bulk of the tests, all the files ending in .x.js are run)
test/startServer.js (start the server)
test/integration/*.x.js (run integration tests)
test/afterTests.js (close the server)

beforeTests.js:

before(function(done) { 
 // do something 
});

startServer.js:

before(function() {
 return runServer()
});

и beforeTests, иРабота startServer, однако, они оба выполняются в начале теста вместо

beforeTest > do unit tests > start server > do integration tests > stop server

Я не могу объединить интеграционные тесты в один файл или модульные тесты, поскольку их слишком много.Есть ли способ настроить mocha.opts делать то, что я хочу.Я огляделся по сторонам, и ничто не соответствует тому, что я хочу сделать.

1 Ответ

0 голосов
/ 22 февраля 2019

Один из методов, которые я использовал ранее для этого, состоит в том, чтобы иметь две команды npm для модульного и интеграционного теста, а затем объединить их в одну команду npm, если я хочу запустить их в одном исполнении.

"test": "npm run test:unit && npm run test:integration"
"test:unit": "mocha test/unit",
"test:integration": "mocha test/integration"

Вы можете запустить сервер как часть теста integration.

Я предлагаю использовать test для npm test вместо mocha для npm run mocha, поскольку это более стандартное имя команды тестирования в проекте узла.

Надеюсь, это поможет

...