3

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

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

为了让它工作,我总是必须在运行cucumber.js之前运行npm startnode app.js。我希望服务器在我从命令行调用 cucumber.js 以运行测试时启动,而不是在运行测试之前手动启动它。

我失败的尝试:

带有 Cucumber + Makefile 的示例 Express 应用程序

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

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

    如果我手动运行服务器然后运行 ​​Makefile,测试就可以工作。

  2. Grunt.js

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

4

1 回答 1

0

将 grunt.js 与 grunt-cucumber 一起使用,并使用grunt-connect在当前目录中启动服务器。

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

grunt.registerTask("your-task-name", ["connect", "cucumber"]);
于 2013-03-27T11:39:42.107 回答