繁体   English   中英

Travis CI:启动rails服务器

[英]Travis CI: start rails server

我需要在Travis上启动rails服务器来运行集成测试。 我已将此添加到配置文件中:

before_script:
  - psql -c 'create database scalia_test;' -U postgres
  - "bundle exec rails server -p 3000 &"

但是,我仍然收到赛普拉斯的错误:

http://localhost:3000/users/sign_in
We attempted to make an http request to this URL but the request failed without a response.
We received this error at the network level:
  > Error: connect ECONNREFUSED 127.0.0.1:3000
Common situations why this would fail:
  - you don't have internet access
  - you forgot to run / boot your web server
  - your web server isn't accessible
  - you have weird network configuration settings on your computer
The stack trace for this error is:
Error: connect ECONNREFUSED 127.0.0.1:3000
    at Object.exports._errnoException (util.js:1024:11)
    at exports._exceptionWithHostPort (util.js:1047:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1150:14)

有人知道如何在Travis上启动Rails服务器吗?

您正在使用&将命令发送到后台,那么您正在运行测试吗?

当你运行测试时,Travis仍然在后台启动你的Rails服务器,因此错误地说它无法连接。 在我看来,它不需要对端口绑定做任何事情。

为了解决这个问题,你应该在启动后使用-d参数守护rails:

before_script:
  - psql -c 'create database scalia_test;' -U postgres
  - "bundle exec rails server -p 3000 -d"

rails服务器将阻塞,直到它侦听端口3000,然后将自己发送到后台并继续运行脚本。

请注意,在测试运行后,您可以使用以下命令再次终止rails服务器:

kill -9 $(cat tmp/pids/server.pid)

否则你将从travis获得超时或其他错误。

尝试将rails绑定到该端口中的环回IP

bundle exec rails s -p 3000 -b 127.0.0.1

可能该端口正在使用中。 在终端输入lsof -i :8000以查看该端口是否正在使用U可以尝试使用不同的端口启动服务器,如rails server -p 3050

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM