我正在flatiron网站上直接使用简单的网络服务器,并希望用誓言进行实验测试。我可以通过测试,但测试永远不会退出。我认为这是因为我的熨斗服务器永远不会关闭。如何关闭服务器或使用其他技术进行简单的http测试?
server.js
var flatiron = require('flatiron'),
app = flatiron.app;
app.use(flatiron.plugins.http);
app.router.get('/', function () {
this.res.writeHead(200, { 'Content-Type': 'text/plain' });
this.res.end('Hello world!\n');
});
app.start(8000);
服务器-test.js
var request = require('request'),
vows = require('vows'),
assert = require('assert');
vows.describe('Hello World').addBatch({
"A GET to /": {
topic: function () {
server = require('../server');
request({
uri: 'http://localhost:8000',
method: 'GET'
}, this.callback)
},
"should respond with 200": function (error, response, body) {
assert.equal("Hello world!\n", body);
},
teardown: function (topic) {
// *********************************
// Do something to shutdown flatiron
// *********************************
}
}
}).export(module);
答案 0 :(得分:3)
您需要导出服务器才能将其关闭。
只需在 server.js :module.exports = app;
现在,您可以使用server var关闭flatiron。文档对于如何关闭文档并不太冗长,但我设法用app.server.close()
关闭它。
以下是文件:
<强> server.js 强>
var flatiron = require('flatiron'),
app = flatiron.app;
module.exports = app;
app.use(flatiron.plugins.http);
app.router.get('/', function () {
this.res.writeHead(200, { 'Content-Type': 'text/plain' });
this.res.end('Hello world!\n');
});
app.start(8000);
服务器-test.js 强>
var request = require('request'),
vows = require('vows'),
assert = require('assert');
var app = require('./server');
vows.describe('Hello World').addBatch({
"A GET to /": {
topic: function () {
request({
uri: 'http://localhost:8000',
method: 'GET'
}, this.callback)
},
"should respond with 200": function (error, response, body) {
assert.equal("Hello world!\n", body);
},
teardown: function (topic) {
app.server.close();
}
}
}).export(module);