2013-01-23 2 views
1

저는 현재 repo에서 코드를 다운로드하고 코드에서 rspec을 실행 한 다음 RSpec에서 결과를 처리하는 sinatra 프레임 워크를 실행하려고합니다. 그러나, 다른 응용 프로그램에서 호출 할 때 rspec을 실행하는 데 문제가 있습니다.전혀 다른 sinatra 앱에서 Rspec을 실행하고 있습니까?

나는 다음과 같은 오류가 계속 : 출력의 톤을 실행 한 후

/Users/dir/.rvm/gems/[email protected]/gems/bundler-1.1.5/lib/bundler/rubygems_integration.rb:147:in `block in replace_gem': rspec-core is not part of the bundle. Add it to Gemfile. (Gem::LoadError) 
    from /Users/dir/.rvm/gems/ruby-1.9.3-p194/bin/rspec:22:in `<main>' 

를, 그것은 기본적으로 루비 번들 간부을 실행하기 전에 올바른 디렉토리로 전환되지 요약된다. 나는 아무 것도 성공하지 못하게하려고 노력했다. 비록 내가 디렉토리를 바꾸더라도, 내가 원하는 어플리케이션이 아닌, 내가 가지고있는 어플리케이션에서 RSpec을 실행하려고 시도 할 것 같다. 해.

Dir.chdir('../target_app'){ 
    exe = "bundle exec rspec spec" 
    `#{exe}` 
    } 

backticks, exec 및 system()도 이와 같이 성공하지 못했습니다.

p = ChildProcess.build('bundle', 'exec', 'rspec', 'spec') 
    p.io.inherit! 
    p.cwd = '../target_app' 
    p.start 

모든 단서 또는이 크게 감사하겠습니다 해결하는 방법에 대한 도움말 :

`cd ../target_app && bundle exec rspec spec` 

는 또한 성공하지 ChildProcess 같은 것들을 시도!

편집 :

/Users/me/dev/target_app 
bin/rspec spec -o ../tmp.txt 
/Users/me/.rvm/gems/[email protected]/gems/bundler-1.1.5/lib/bundler/rubygems_integration.rb:223:in `block in replace_bin_path': can't find executable rspec (Gem::Exception) 
    from bin/rspec:16:in `<main>' 

답변

2

이 Bundler를 bundle install --binstubs 및 사용 binstubs 생성 :

Dir.chdir('../target_app'){ 
    puts `pwd`.chomp 
    exe = "bin/rspec spec -o ../tmp.txt" 
    puts exe 
    `#{exe}` 
    } 

내가이 출력을 얻을 : 나는이 코드를 bundle install --binstub --path vendor

을 시도했습니다

rspec 대신 binstub를 사용하여 적절한 rspec을 d Gemfile은 항상 사용됩니다.

http://gembundler.com/v1.2/man/bundle-exec.1.html (즉, 온라인 매뉴얼 페이지에서 binstubs에 대한 자세한 내용은)

+2

1. 저는 항상 모든 프로젝트에 대해 이것을합니다. 또한'--path vendor'를 추가하면 작업중인 다른 프로젝트의 전체 프로젝트를 샌드위치하는 데 정말로 도움이됩니다. YMMV – iain

+0

방금 ​​시도했지만 아직 성공하지 못했습니다. 난 여기에서 지시 사항을 따라했습니다 : http://robots.thoughtbot.com/post/15346721484/use-bundlers-binstubs 그리고 난 여전히 같은 오류가 발생합니다. 나는 그 폴더에서 gemfile을로드 할 필요가 있다고 생각하지만, 제대로 작동하는지 확실하지 않다. 올바른 방법이다. – roloenusa

+0

대상 앱이 아닌 초기 애플리케이션에 상대적으로'bin/rspec'을 실행하고 싶다. 'rspec = File.expand_path ("./ bin/rspec")'를 사용하여'Dir.chdir'을하기 전에 경로를 bin/rspec으로 설정하십시오 (작동한다면'File.dirname (__ FILE__)'이 더 강력 할 수 있습니다. –

관련 문제