2017-11-26 14 views
0

최근 포스트그레스 대신 neo4j를 사용하는 레일 앱을 계승했습니다.neo4j가 지원하는 레일 앱의 루비 사양 테스트를 실행할 수 없습니다

나는이

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

같은 사양 테스트를 실행하려고하면 나는 또한

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

내가 http://neo4jrb.readthedocs.io/en/7.1.x/Setup.htmlhttp://neo4jrb.readthedocs.io/en/9.0.x/Testing.html

012,351,641 읽기 시도

/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) 

그러나 해결책을 아직 찾지 못했습니다. 내가했던

어떤 것들은 :

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

Daniel의 대답과 관련하여 보석은 bolt://을 URL로 허용해야합니다 (조쉬 한이 링크 된 Setup 문서 참조). 스키마는 여기 파악된다

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

을 라인에가 URL 밖으로 bolt를 얻을 수 scheme를 호출 위. 또한 NEO4J_URL이 지정되면 NEO4J_TYPE 환경 변수가 무시된다는 것을 알 수 있습니다.

모두 말해서, 조쉬 한이 분명히 얻고있는 오류는 패러데이를 사용하려는 것처럼 보입니다. 패러데이는 HTTP 어댑터에만 사용해야합니다. 내가 취하는 경로를 이해하기 위해서는 더 많은 백 트레이스가 필요합니다.

볼트 구현은 내가 원하는 것처럼 상당히 성숙하지는 않지만, 나는 일반적으로 사람들이 지금 HTTP를 사용하도록 권고하고있다. (나는 항상 사람들에게 볼트 테스트를 해줘서 기쁘다).

또한

, 작은 참고 : 당신은 (당신이 사용하고있는 버전을 잘 모르겠지만)

보석의 최신 버전이 아닙니다 7.1.x의 설명서의 URL에서 http://neo4jrb.readthedocs.io/en/7.1.x/Setup.html에 연결
0

이 당신이 URL을 정의하는 방법과 관련이있다. bolt 체계를 사용하고 있으므로 URI은 어떤 URI 유형인지 모르기 때문에 일반 URI 인스턴스를 제공합니다. 인터페이스는 HTTP를 통해이며, 패러데이 (HTTP 클라이언트)로 전달되고 있기 때문에

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 #=> "/" 

기본적으로, URL은 NEO4J_URL="http://localhost"로 정의되어야한다.