我有一個server.js模塊,導出一個start()函數來啓動我的服務器。 我需要這個模塊並從index.js啓動服務器。Node.js調用函數child_process.fork
我想通過在child_process.fork調用中啓動服務器來單元測試server.js模塊(使用Mocha),但是我看不到如何調用導出的啓動函數。
它目前的工作是將'index.js'傳遞給fork調用,但後來我看不到如何將選項傳遞給server.js模塊(例如發送端口號)。
這裏是我的server.js和unit test,它使用index.js(它只需要調用server.start())。
我想直接測試server.js,因此我可以將環境變量傳遞給它。
==== ====編輯
我不知道什麼,我想我會在一個單獨的進程啓動服務器獲得。
我已經改變了測試,只是在前面的塊中啓動服務器。
建議歡迎。
var assert = require("assert");
var request = require("request");
describe("Server", function(){
var server;
var port = 4008;
before(function(done){
server = require("../server");
server.start(port);
done();
});
it('listens on specified port (' + port + ')', function(done){
request('http://localhost:' + port, function(err, res, body){
assert(res.statusCode == 200);
done();
});
});
});
如果你不需要爲你的測試產生進程,那麼這個問題應該可能因爲本地化而關閉。 – qubyte