У меня проблемы с запуском тестов mocha в нашем конвейере Bitbucket.Тесты работают при их локальном выполнении.
Мы настроили сервер Hapi следующим образом:
const server = new Hapi.Server(settings);
server.connection({
host: config.get('host'),
port: config.get('port') || 3000,
});
server.register(modules, () => {
server.start((err) => {
if (err) throw err;
console.log('Server running at:', server.info.uri);
});
});
export default server;
И тест выглядит следующим образом:
import server from '../server';
describe('Public callbacks', () => {
describe('handleCallback', () => {
it('should call all services successfully', async () => {
const result = await server.inject({
method: 'GET',
url: '/path/to/somewhere',
});
expect(result.statusCode).to.be.equal(200);
});
});
});
При запускелокально это работает нормально, и все модули загружены.Но когда мы запускаем этот тест в конвейере Bitbucket, все тесты не выполняются со статусом 404 и server.info
выглядит так:
{ created: 1548249331200,
started: 0,
host: 'localhost',
port: 3000,
protocol: 'http',
id: 'd60bcd2a-dffe-475f-babc-453899f9cb68:1178:jr97odmo',
uri: 'http://localhost:3000' }
Я пытался добавить вызов mocha before
до того, как все тесты будут выполнены.запустить.
import path from 'path';
before(async function startup() {
this.timeout(15000);
const { default: server } = require(path.resolve('path/to', 'server/server'));
if (server.info.started) { return; }
return new Promise((resolve) => server.on('start', resolve));
});
При локальном запуске server.info.started
всегда верен, но в конвейере оно ложно, и событие start
никогда не генерируется.
Что может заставить Hapi не запускаться при запускев конвейере Bitbucket?