2017-11-26 11 views
0

最近postgresの代わりにneo4jを使用したレールアプリを継承しました。neo4jに裏打ちされたレールアプリのルビー仕様テストを実行できません

私はこの

NEO4J_TYPE=bolt NEO4J_URL="bolt://localhost" bundle exec rake spec 

のようなスペックのテストを実行しようとすると、私は

/Users/user1/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.9.2/lib/faraday/adapter/net_http.rb:66:in `create_request': undefined method `request_uri' for #<URI::Generic bolt://localhost> (NoMethodError) 

を得るまた、私はhttp://neo4jrb.readthedocs.io/en/7.1.x/Setup.htmlhttp://neo4jrb.readthedocs.io/en/9.0.x/Testing.html

を読ん

NEO4J_TYPE=bolt NEO4J_URL="bolt://localhost:7687" bundle exec rake spec 

を試してみました

しかし解決策はまだ見つかりませんでした。

私がやったいくつかの点:

brew install neo4j. # also installed java 8 with brew 
rake neo4j:config[test,7575] 
brew services stop neo4j 
brew services start neo4j 

$ cypher-shell -a bolt://localhost 
Connected to Neo4j 3.3.0 at bolt://localhost:7687. 
Type :help for a list of available commands or :exit to exit the shell. 
Note that Cypher queries must end with a semicolon. 
neo4j> 
Interrupted (Note that Cypher queries must end with a semicolon. Type :exit to exit the shell.) 
neo4j> 

答えて

0

ダニエルの回答に関して、宝石はURLとしてbolt://を許可する必要があります(ジョシュバーンがリンクしているSetupのドキュメントを参照)。スキーマは、ここで考え出している:それ以上のラインで

https://github.com/neo4jrb/neo4j/blob/master/lib/neo4j/railtie.rb#L98

は、URLのうち、boltを取得したschemeを呼び出します。また、NEO4J_URLが指定されている場合、NEO4J_TYPEという環境変数は無視されます。

joshsvernsが間違っているというエラーは、ファラデーを使用しようとしているように見えます。ファラデーはHTTPアダプタでのみ使用する必要があります。私は取られている道を理解するためにバックトレースをもっと必要とします。

ボルトの実装はそれほど成熟していませんが、私はそれが好きです。私は一般的に人々がHTTPを今使っていることを推薦してきましたが(私はいつも人々にボルトをテストさせてもらえます)。また

、マイナー注:宝石の最新バージョンではありません7.1のドキュメント(私はあなたが使用しているバージョンはよく分からないが)

のURLから http://neo4jrb.readthedocs.io/en/7.1.x/Setup.htmlにリンク
0

これは、あなたがURLを定義しているどのように関係しています。 boltスキームを使用しているので、URIはどのタイプのURIであるかわからないので、一般的なURIインスタンスを提供します。本質的

bolt_uri = URI.parse("bolt://localhost") #=> #<URI::Generic bolt://localhost> 
bolt_uri.request_uri #=> Raises NoMethodError 

http_uri = URI.parse("http://localhost") #=> #<URI::HTTP http://localhost> 
http_uri.request_uri #=> "/" 

、インタフェースがHTTP経由で、ファラデー(HTTPクライアント)に渡されるので、URLはNEO4J_URL="http://localhost"として定義されるべきです。

関連する問題