node.js - CircleCI + 守夜人 : Tests time out

标签 node.js selenium testing nightwatch.js circleci

所以我正在尝试让 Nightwatch.js 测试在 CircleCI 上运行。在 CircleCI 的配置过程中,我...将 Node 更新到最新版本(因为我们有 Node 服务器),npm 安装我们的包,下载 chrome(我们的测试在其上运行),成功构建我们的代码,启动产品服务器,然后运行测试。

当我在本地执行此操作时一切正常,但是当我在 CircleCI VM 上运行它时,所有测试都超时

可能是因为CircleCI VM没有任何可以打开浏览器的图形界面?我不想使用像 PhantomJS 这样的东西,因为我们的测试应该真正测试特定浏览器 (chrome) 上的用户体验。

另一个提示是我应该为测试创建特殊的环境。目前我正在运行我的测试 --env default。如果需要,我应该为 CI 定义什么样的环境?

有什么想法吗?谢谢

编辑:好的,我发现问题不在于浏览器,而是因为 localhost 没有返回任何内容。在我的 CI 配置中,使用我的“npm”脚本手动启动服务器,但是由于某种原因我无法连接到它。 ping 返回“未知主机”。有什么想法吗?

EDIT2:好的,所以服务器正在运行。当我 curl localhost:8080 时,我得到自定义 404。但是,当我尝试 curl 实际模块(通过重定向我所做的“主机”文件)时,响应是... 来自服务器的空回复返回退出代码 52。为什么?

最佳答案

好吧,问题是环境变量设置不好,所以应用程序的配置有点丢失。

在 circleCI 中,我需要在不带引号 ""的情况下声明我的环境变量,因为 circleCI 会自动为您插入它们。

关于node.js - CircleCI + 守夜人 : Tests time out,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40783161/

相关文章:

javascript - 不能用 mongoose 将项目 $push 到数组中

ruby - 继承 Machinist 蓝图中的属性

java - Surefire 重新运行失败的测试不起作用

javascript - Node js Express尝试将orm json传递给客户端

node.js - 如何在 Angular 2 应用程序中包含时刻时区

javascript - 断言元素列表遵循 JavaScript Promise 的规则

Python + split : Error - httplib. BadStatusLine: ''

java - Selenium Java - 此版本的 ChromeDriver 仅支持 Chrome 版本 81

未部署 python 测试

javascript - 如何从 nodejs 应用程序访问浏览器的窗口对象?