如何在使用测试框架时启动节点服务器?

时间:2013-03-25 19:54:59

标签: javascript node.js express cucumber gruntjs

只是一个快速的背景。我正在尝试使用Cucumber.js在快速/节点应用程序中执行BDD。它在Rails中运行得非常好,所以我希望保持相同的框架。我的问题是,对于我要运行的任何测试,我需要手动启动服务器。

例如,在我的测试/场景中,我使用zombie模块的浏览器对象访问页面:this.browser.visit(path, function(){ ... });

为了实现这一点,我必须在运行 cucumber.js 之前运行 npm start 节点app.js 。当我从命令行调用cucumber.js运行测试而不必在运行测试之前手动启动它时,我希望服务器启动。

我失败的尝试:

使用Cucumber + Makefile的示例Express应用程序

  1. 上面的链接是一个示例仓库,它使用Makefile启动Node.js服务器并运行测试。我尝试复制和编辑该文件以在我自己的项目中使用,但我一直收到错误:

    { [Error: connect ECONNREFUSED] code: 'ECONNREFUSED', errno: 'ECONNREFUSED', syscall: 'connect' }

    如果我手动运行服务器然后运行Makefile,则测试工作。

  2. Grunt.js

  3. 理想情况下,我想使用Grunt来管理我的测试,但我遇到了同样的问题。我开始玩grunt-cucumber,但在运行测试之前没有启动服务器的选项。

1 个答案:

答案 0 :(得分:0)

使用grunt.js和grunt-cucumber,以及grunt-connect在当前目录中启动服务器。

然后你可以定义一些首先启动连接服务器然后运行黄瓜测试的别名任务:

grunt.registerTask("your-task-name", ["connect", "cucumber"]);