Я создал небольшое примерное приложение в файле node.js с юнит-тестами и приемочными тестами здесь
И модульные, и приемочные тесты выполняются внутри процесса mocha.Приемочные тесты начинаются с разветвления процесса и запуска сервера по методу before ().Метод after () останавливает процесс и
before((initialized) => {
console.log('before script');
serverProcess = child_process.fork('server.js');
serverProcess.on('close', function (code) {
console.log('child process exited with code ' + code);
});
setTimeout(() => {
console.log('1s elapsed');
initialized();
}, 1000);
Код без каких-либо задержек работает на моем локальном gitlab-runner, однако на сервере это не всегда так, поэтому я добавил задержку - подождите некоторое время, покасервер запустится.Опытным путем я обнаружил, что 1 с достаточно, а 5 с - нет.Тем не менее, я хотел бы знать, что я должен сделать, чтобы убедиться, что сервер.
Are there any solutions to run server, execute the tests and shutdown the server that works on Linux, Windows, docker and outside of it?