2016-08-01 5 views
1

私は現在かなり大きなRailsアプリケーションをRails 3からアップグレードしています - - > Rails 4(またはおそらく5)。RSpecが実行に失敗しました - エラー、エラーがあります:#<RSpec :: Core :: Bisect :: Server>の未定義メソッド `run '

私はRuby v2.1.5で実行中のRails v4.0.13アプリケーションを現在持っています。テストスイートはRSpec v3.5.2で実行されており、緑色の(woohoo!)ですが、残念なことに断続的に失敗します。

rspec --bisectを使用してさらにアップグレードする前に、これらの障害の原因を突き止めることが理想的です。私は(または他の引数なし)rspec --bisectを実行したときに

はしかし、私は次のエラーを取得する:

Bisect started using options: "" 
Running suite to find failures... 

Bisect failed! Failed to get results from the spec run. Spec run output: 

(druby://127.0.0.1:33858) /home/tom/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/drb/drb.rb:1588:in `perform_without_block': undefined method `run' for #<RSpec::Core::Bisect::Server:0x00000001e71430> (NoMethodError) 
     from (druby://127.0.0.1:33858) /home/tom/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/drb/drb.rb:1548:in `perform' 
     from (druby://127.0.0.1:33858) /home/tom/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/drb/drb.rb:1626:in `block (2 levels) in main_loop' 
     from (druby://127.0.0.1:33858) /home/tom/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/drb/drb.rb:1622:in `loop' 
     from (druby://127.0.0.1:33858) /home/tom/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/drb/drb.rb:1622:in `block in main_loop' 
     from /home/tom/.rvm/gems/[email protected]<project-name>/gems/rspec-core-3.5.2/lib/rspec/core/drb.rb:23:in `run' 
     from /home/tom/.rvm/gems/[email protected]<project-name>/gems/rspec-core-3.5.2/lib/rspec/core/invocations.rb:19:in `call' 
     from /home/tom/.rvm/gems/[email protected]<project-name>/gems/rspec-core-3.5.2/lib/rspec/core/runner.rb:69:in `run' 
     from /home/tom/.rvm/gems/[email protected]<project-name>/gems/rspec-core-3.5.2/lib/rspec/core/runner.rb:45:in `invoke' 
     from /home/tom/.rvm/gems/[email protected]<project-name>/gems/rspec-core-3.5.2/exe/rspec:4:in `<main>' 

は、誰もがこれを引き起こしている可能性がどのような手掛かりを持っている、または私が追跡することができるかもしれない方法原因を取り除く?

私は無駄に、これまでに試したいくつかの点:

  • --bisectを追加したときにそれはだから>= 3.3.0、)下位バージョンへのダウングレードRSpecの。
  • ルビをより高いバージョン(つまり2.3.1)にアップグレードします。 (これにより、私はまだ解決していないが、まだこの--bisectの問題には影響しません)いくつかのテストの失敗が発生します。
  • rvm gemset empty <project_name>; gem install bunder; bundleでシステムをクリーンアップして、周囲に横たわっていたアップグレード前のライブラリコードをすべて削除します。

またうまく--bisect作品を実行しているため、私はこのコンピュータに Railsのプロジェクトを持っていることは注目に値します - ので、私は、これはシステムライブラリの互換性の問題になることができるとは思いません。私はそれがプロジェクトの設定と関係するものでなければならないと思う - しかし、何?(私も手がかりのためのアプリケーションのバックトレースを見ることはできません??)

編集:まだこれに対する解決を見つけることがなければ、私は、アプリケーションをアップグレード続けてきました。現在、Rails v4.2.7Ruby v2.3.1が実行されていますが、すべての仕様は合格していますが(依然として発注問題があります) rspec --bisectを実行しているときのエラーメッセージは変更されません。

+0

DRbがは気晴らしのように思えます。--drbなしでrspec --bisectを実行するとどうなりますか? –

+0

私は '--drb'オプションを含めませんでした。この動作は単に '--bisect'(?)を使うことの結果と思われます。私もオプション['--no-drb'](https://github.com/rspec/rspec-core/blob/350c21b6f66a54267ff615ed16604e017122e6be/spec/rspec/core/configuration_options_spec.rb#L3160)を使用してみましたが、もう一度同じコンソール出力を得る。 –

+0

[this pull request](https://github.com/rspec/rspec-core/pull/2223)も参照してください。 - 私はrspecの古いバージョンあまりにも。 –

答えて

0

これは長時間ですが、.rspecファイルを持っていますか?

私は空のレールプロジェクトでそれを追加して同様のエラーを再現することができました。なんらかの理由でrspec --bisect --drbを実行すると、この問題が発生します。

スポークのドキュメントでは、​​を.rspecファイルに直接追加することを推奨しています。だから、それが削除されていることを確認し、ちょうどrspec --bisectを実行するとうまくいくはずです。

2

私はこのエラーを見て、springとspring-commands-rspecをバイパスして修正しました。 bin/rspec --bisectを使用しないでください

、試してみてください。

# Stop spring 
bin/spring stop 

# Ensure rspec isn't using spring 
bundle exec rspec --bisect 
+0

も私を助けました!ありがとうございました! – Masha

関連する問題