1

私は 3 か月前に rspec を開始し、sinatra プロジェクト (ruby 2.1.1 を使用) で作業しています ...

私のスペックにはエラーはありません(他のコンピューターで正常に実行されています)が、自分で実行しているときに、すべての例でこれを取得しました...

 Failure/Error: Unable to find matching line from backtrace
 ArgumentError:
   wrong number of arguments (0 for 1)
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-mocks-2.14.6/lib/rspec/mocks.rb:10:in `setup'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/mocking_adapters/rspec.rb:17:in `setup_mocks_for_rspec'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/example.rb:337:in `run_before_example'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/example.rb:147:in `block in run'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/example.rb:299:in `with_around_example_hooks'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/example.rb:145:in `run'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/example_group.rb:494:in `block in run_examples'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/example_group.rb:490:in `map'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/example_group.rb:490:in `run_examples'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/example_group.rb:457:in `run'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/example_group.rb:458:in `block in run'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/example_group.rb:458:in `map'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/example_group.rb:458:in `run'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/runner.rb:112:in `block (2 levels) in run_specs'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/runner.rb:112:in `map'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/runner.rb:112:in `block in run_specs'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/reporter.rb:54:in `report'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/runner.rb:108:in `run_specs'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/runner.rb:86:in `run'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/runner.rb:70:in `run'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/lib/rspec/core/runner.rb:38:in `invoke'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/gems/rspec-core-3.0.0/exe/rspec:4:in `<top (required)>'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/bin/rspec:23:in `load'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/bin/rspec:23:in `<main>'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `eval'
 # /home/vagrant/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>'
 # 
 #   Showing full backtrace because every line was filtered out.
 #   See docs for RSpec::Configuration#backtrace_exclusion_patterns and
 #   RSpec::Configuration#backtrace_inclusion_patterns for more information.

==========================

このリンク ( https://github.com/rspec/rspec-core/issues/754 ) を使用しましたが、うまくいきません (私のアプリは projects という名前のフォルダーにあります) ...

ruby 2.0.0 も試してみましたが、同じ問題です...

私はそれについての役に立つ文章を読んで喜んでいます...ありがとう

4

1 に答える 1

2

問題は、コードに対応していない rspec または rspec-mock のバージョンをルビーでロードすることです。

したがって、このサンドボックスを修正するには、gem を修正します。

#clean up
$ rm -rf .bundle Gemfile.lock bin vendor

#install
$ bundle install --binstubs --path vendor

#run
$ bundle exec ruby yourfile.rb
$ bin/rackup

これにより、システムに驚くほどインストールされる可能性のある gem ではなく、gemfiles から指定された gem がプロジェクトで使用されるようになりました。これにより、おかしなロード パス エラーを防ぐこともできます。したがって、すべてのプロジェクトでこれを使用することをお勧めします。

于 2014-06-10T12:17:49.700 に答える