我有一个使用 CicleCI 进行测试的项目,我正在尝试集成 Tire 以实现搜索功能。在本地,所有测试都运行良好,没有问题。但是,当 CircleCI 运行测试时,我收到了 Errno::ECONNREFUSED : Connection refused - connect(2)
错误。我尝试将 tire.rb
文件添加到 config/initilizers:
if Rails.env.test?
ENV['ELASTICSEARCH_URL'] = "http://circlehost:9200" # With and without this.
Tire.configure do
url "http://circlehost:9200" # also tried localhost:9200, and 127.0.0.1:9200
end
end
尝试添加一个 circle.yml
文件,如下所示:https://circleci.com/docs/config-sample
hosts:
circlehost: 127.0.0.1
以及这些的任意组合。现在我没主意了,不知道该怎么办。我以为我走在正确的道路上,但现在我不太确定。
如果有人能提供帮助,将不胜感激。
最佳答案
由于 elasticsearch 在本地机器上可用,测试用例将运行良好。但是在 CircleCI 上你需要明确指定需要 elasticsearch。因此,您需要在 circle.yml 中的服务下添加“elasticsearch”。
在circle.yml中
machine:
services:
- elasticsearch
关于ruby-on-rails - Rails、Tire 和 CircleCI:在创建 Tire-Searchable 对象时运行 rspec 测试时出现 Errno::ECONNREFUSED 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17596106/