4

テストに CicleCI を使用しているプロジェクトがあり、Tire を検索機能に統合しようとしています。ローカルでは、すべてのテストが問題なく正常に実行されます。しかし、CircleCI がテストを実行すると、Errno::ECONNREFUSED : Connection refused - connect(2)エラーが発生します。tire.rbconfig/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

そして、それらの任意の組み合わせ。今、私はアイデアがなくなり、何をすべきかわかりません。正しい道を進んでいると思っていましたが、今はよくわかりません。

誰かが助けてくれれば、それは大歓迎です。

4

2 に答える 2

0

デフォルト(service:elasticsearch設定時)で使用されるelasticsearchのバージョンは0.92.0(2歳)

ただし、elasticsearch のカスタム バージョンをインストールすることはできます。「サービス」フィールドからelasticsearchを削除することを忘れないでください。

ただし、elasticsearch が使用可能になるまでに時間がかかる場合があるため、接続を再試行するスクリプトを作成する必要があります。

以下は、nodejs SDK を使用した例です。このコードは、テストスイートの before all フックにあります。

before(function(done){
  var count = 1;
  function _setup (c) {
    return client.ping({pingTimeout: 4000})
     .then(function () {
       done();
      })
     .catch(function (err) {
       console.log(err);
       console.log('retry ', c);
       return setTimeout(function () {
         _setup(count++);
       }, 4000);
    });
   }
   _setup(count);
})
于 2015-08-12T10:28:12.750 に答える