在Bitbucket管道中运行测试时,Hapi无法启动

时间:2019-01-23 13:45:32

标签: node.js unit-testing mocha hapijs bitbucket-pipelines

在我们的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事件。

在Bitbucket管道中运行时,可能导致Hapi无法启动的原因是什么?

0 个答案:

没有答案