Хапи не запускается при запуске тестов в конвейере Bitbucket - PullRequest
0 голосов
/ 23 января 2019

У меня проблемы с запуском тестов 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?

...