我有一个使用vows进行测试的express服务器。我希望在vows测试套件内运行该服务器,这样我就不需要在后台运行它以使测试套件正常工作,然后我只需创建一个蛋糕任务来运行服务器并在隔离环境中对其进行测试。
在`server.coffee`中,我创建了一个(express)服务器,进行了配置,设置了路由,并像这样调用app.listen(port):
# Express - setup
express = require 'express'
app = module.exports = express.createServer()
# Express - configure and set up routes
app.configure ->
app.set 'views', etc....
....
# Express - start
app.listen 3030
在我的简单的 routes-test.js
中,我有:
vows = require('vows'),
assert = require('assert'),
server = require('../app/server/server');
// Create a Test Suite
vows.describe('routes').addBatch({
'GET /' : respondsWith(200),
'GET /401' : respondsWith(401),
'GET /403' : respondsWith(403),
'GET /404' : respondsWith(404),
'GET /500' : respondsWith(500),
'GET /501' : respondsWith(501)
}).export(module);
respondsWith(code)
功能类似于vows文档中的那个...
当我在上面的测试中require
服务器时,它会自动开始运行服务器并运行和通过测试,这很好,但我不觉得我是在以“正确”的方式进行。
我无法控制服务器何时开始工作,如果我想将服务器配置为指向“测试”环境而不是默认环境,或者更改默认日志记录级别以进行测试,该怎么办?
PS:我将把我的vows转换为Coffeescript,但现在它们全部都是js,因为我正在阅读文档学习!