在使用gulp完成testing之后,Hapi注入将不会退出到命令行

我试图做一个简单的集成testing,但testing完成后,不会退出到命令行。 它只是卡在那里。

这是代码。

'use strict'; var Hapi = require('hapi'); var Inert = require('inert'); var Vision = require('vision'); var log = require('./logger'); var config = require('./config'); var extensions = require('./extensions'); var server = new Hapi.Server({}); server.connection({ port: config.port }); require('./routes')(server); // adds metadata to responses, and customizes error responses server.ext({ type: 'onPreResponse', method: function preResponse(request, reply) { extensions.handlePreResponse(request, reply); return reply.continue(); } }); server.on('request-error', extensions.handleOnRequestError); server.register( [ Inert, Vision, require('./plugins/swaggerPlugin') ], function handlePluginRegistrationError(err) { if (err) { log.warn(JSON.stringify(err)); throw err; // something bad happened loading the plugins } server.start(function serverStartedCallback() { log.warn('DAL services listening on port '+config.port+'...'); log.warn('Server running at: ' + server.info.uri); }); } ); module.exports = server; 

这是testing

 'use strict'; var chai = require('chai'); var expect = chai.expect; var server = require('../../../index'); describe('Root Integration Tests', function desc() { it('should get root route', function it(done) { var options = { method: "GET", url: "/" }; server.inject(options, function(response) { expect(response.statusCode).to.equal(200); done(); }); }); }); 

这是我的一口气。

 gulp.task('integration-test', function performIntegrationTests() { return gulp.src(['tests/integration/**/*.js']) .pipe(mocha({'reporter': 'dot', 'timeout': 30000})); }); 

可能的问题是,hapi仍然在运行http服务器,所以节点不知道退出。

尝试添加一个after块到你的testing和调用server.stop()那里。 像这样的东西:

 after(function(done) { server.stop({ timeout: 0 }, done) }) 
Interesting Posts