私は現在かなり大きな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.7
とRuby v2.3.1
が実行されていますが、すべての仕様は合格していますが(依然として発注問題があります) rspec --bisect
を実行しているときのエラーメッセージは変更されません。
DRbがは気晴らしのように思えます。--drbなしでrspec --bisectを実行するとどうなりますか? –
私は '--drb'オプションを含めませんでした。この動作は単に '--bisect'(?)を使うことの結果と思われます。私もオプション['--no-drb'](https://github.com/rspec/rspec-core/blob/350c21b6f66a54267ff615ed16604e017122e6be/spec/rspec/core/configuration_options_spec.rb#L3160)を使用してみましたが、もう一度同じコンソール出力を得る。 –
[this pull request](https://github.com/rspec/rspec-core/pull/2223)も参照してください。 - 私はrspecの古いバージョンあまりにも。 –