ruby-on-rails - Rails、Tire 和 CircleCI:在创建 Tire-Searchable 对象时运行 rspec 测试时出现 Errno::ECONNREFUSED 错误

标签 ruby-on-rails elasticsearch ruby-on-rails-4 tire circleci

我有一个使用 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

结帐https://circleci.com/docs/configuration#services了解更多信息。

关于ruby-on-rails - Rails、Tire 和 CircleCI:在创建 Tire-Searchable 对象时运行 rspec 测试时出现 Errno::ECONNREFUSED 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17596106/

相关文章:

ruby-on-rails - rails 4 : Bootstrap-sass gem assets work on development but not on production

elasticsearch - 6.2中的本地弹性节点

elasticsearch - 无法访问 kibana 仪表板

ElasticSearch fieldNorm 始终为 1

ruby-on-rails - 如何在嵌套属性中使用条件验证 validate_presence_of ?

ruby-on-rails - 由于 Postgres inet 类型,Rails 数据库迁移失败

javascript - jScroll返回页面时保存滚动位置

ruby-on-rails - 未使用重定向设置实例变量

mysql - Thinking Sphinx - 搜索博客文章的标题、内容和标签

ruby-on-rails - 带有 ActionDispatch::Cookies 的 Rails 5 API 模式