只是一个快速的背景。我正在尝试使用 Cucumber.js 在 express/node 应用程序中执行 BDD。它在 Rails 中运行得非常好,所以我想保持相同的框架。不过我的问题是,要运行任何测试,我都需要手动启动服务器。
例如,在我的测试/场景中,我使用了僵尸模块的浏览器对象来访问一个页面:this.browser.visit(path, function(){ ... });
为了让它工作,我总是必须在运行cucumber.js之前运行npm start或node app.js。我希望服务器在我从命令行调用 cucumber.js 以运行测试时启动,而不是在运行测试之前手动启动它。
我失败的尝试:
带有 Cucumber + Makefile 的示例 Express 应用程序
上面的链接是一个示例 repo,它使用 Makefile 启动 Node.js 服务器并运行测试。我尝试复制和编辑该文件以在我自己的项目中使用,但我不断收到错误消息:
{ [Error: connect ECONNREFUSED] code: 'ECONNREFUSED', errno: 'ECONNREFUSED', syscall: 'connect' }
如果我手动运行服务器然后运行 Makefile,测试就可以工作。
Grunt.js
理想情况下,我想使用 Grunt 来管理我的测试,但我遇到了同样的问题。我已经开始使用 grunt-cucumber,但它没有在运行测试之前启动服务器的选项。