2011-06-02 11 views
8

मुझे पुरानी रेल 2.3 ऐप मिली है। यह बहुत जटिल है और इसमें कोई शॉक नहीं है (सदमे, डरावनी)। मुझे rspec और ककड़ी के लिए उपयोग किया जाता है, इसलिए मैंने सोचा कि मैं चश्मे और अंतराल के लिए परिभाषित चश्मा और सुविधाओं को प्राप्त करने के लिए काम करना शुरू कर दूंगा। अगर मुझे पता है कि वास्तव में क्या असफल होगा तो इसे अपग्रेड करना आसान है।लोड करने के लिए ऐसी कोई फ़ाइल नहीं - rspec/matchers - rspec-rails, कंधे, ककड़ी, फैक्ट्री गर्ल, Rails2.3.10

वैसे भी, मुझे इंटरनेट पर संसाधनों को ढूंढना बहुत मुश्किल लगता है जो दिखाता है कि रेलवे 2.3 में rspec, ककड़ी, फैक्ट्री गर्ल और कंधे कैसे स्थापित करें। मेरे बंडल इस प्रकार है:

source "http://rubygems.org" 

# Production gems 
gem "rails", "2.3.10" 
gem "nokogiri", "1.4.4" 
gem "mysql", "~> 2.8.1" 

group :development do 
    # bundler requires these gems in development 
    gem 'rspec',   '1.3.2' 
    gem 'rspec-core',  '2.5.2' 
    gem 'rspec-rails', '1.3.4' 
end 

group :test do 
    # bundler requires these gems while running tests 
    gem 'cucumber-rails', '0.4.1' 
    gem 'factory_girl' 
    gem 'shoulda',  '2.11.3' 
    gem 'shoulda-matchers' 
end 

जब मैं

bundle exec rspec spec, 

मैं चाहिये से निम्नलिखित स्टैकट्रेस मिल चलाने के लिए जाना:

/Users/sys/src/proj/rails/ruby/1.8/gems/shoulda-2.11.3/lib/shoulda/integrations/rspec2.rb:8: no such file to load -- rspec/matchers (MissingSourceFile) 
    from /Users/sys/src/proj/vendor/rails/activesupport/lib/active_support/dependencies.rb:184:in `require' 
    from /Users/sys/src/proj/vendor/rails/activesupport/lib/active_support/dependencies.rb:184:in `require' 
    from /Users/sys/src/proj/rails/ruby/1.8/gems/shoulda-2.11.3/lib/shoulda.rb:4 
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:68:in `require' 
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:68:in `require' 
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:66:in `each' 
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:66:in `require' 
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:55:in `each' 
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:55:in `require' 
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler.rb:120:in `require' 
    from /Users/sys/src/proj/config/boot.rb:119:in `load_gems' 
    from /Users/sys/src/proj/config/../vendor/rails/railties/lib/initializer.rb:164:in `process' 
    from /Users/sys/src/proj/config/../vendor/rails/railties/lib/initializer.rb:113:in `send' 
    from /Users/sys/src/proj/config/../vendor/rails/railties/lib/initializer.rb:113:in `run' 
    from /Users/sys/src/proj/config/environment.rb:12 
    from /Users/sys/src/proj/spec/spec_helper.rb:4:in `require' 
    from /Users/sys/src/proj/spec/spec_helper.rb:4 
    from /Users/sys/src/proj/spec/models/announcement_spec.rb:1:in `require' 
    from /Users/sys/src/proj/spec/models/announcement_spec.rb:1 
    from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in `load' 
    from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in `load_spec_files' 
    from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in `map' 
    from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in `load_spec_files' 
    from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/command_line.rb:18:in `run' 
    from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/runner.rb:55:in `run_in_process' 
    from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/runner.rb:46:in `run' 
    from /Users/sys/src/proj/rails/ruby/1.8/gems/rspec-core-2.5.2/lib/rspec/core/runner.rb:10:in `autorun' 
    from /Users/sys/src/proj/rails/ruby/1.8/bin/rspec:19 

Googling के लिए कि त्रुटि डरावनी कुछ हिट प्रदान करता है .. मुझे यकीन नहीं है कि मैंने क्या गलत किया है?

rspec कोर निकाला जा रहा है देता है:

बंडल कार्यकारी rspec कल्पना/मॉडल/announcement_spec.rb /Users/sys/.rvm/gems/[email protected]/gems/bundler-1.0 .14 ​​/ lib/bundler/rubygems_integration.rb: 143: 'मणि' में: rspec-core बंडल का हिस्सा नहीं है। इसे Gemfile में जोड़ें। (रत्न :: LoadError)

opt/स्थानीय/bin/rspec

cat /opt/local/bin/rspec 
#!/usr/bin/env ruby 
# 
# This file was generated by RubyGems. 
# 
# The application 'rspec-core' is installed as part of a gem, and 
# this file is here to facilitate running it. 
# 

require 'rubygems' 

version = ">= 0" 

if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then 
    version = $1 
    ARGV.shift 
end 

gem 'rspec-core', version 
load Gem.bin_path('rspec-core', 'rspec', version) 

की सामग्री मुझे आश्चर्य है कि अगर यह अन्य rspec की मैं स्थापित किया है से जूझ रहा है (मैं बंडलर साथ भी एक Rails3 एप्लिकेशन इंस्टॉल किया हुआ,/आरवीएम) ... सुनिश्चित नहीं है कि आरएसपीईसी ऑप्ट/लोकल/बिन से क्यों नहीं चल रहा है और बंडल नहीं है, हालांकि ..

उत्तर

11

मैं इस एक ही समस्या में भाग:

तुलना के लिए, यहाँ हमारे Gemfile से एक अनुभाग है कि रेल 2.3 के लिए ठीक काम करता है। सभी द्विआधारी आरएसपीईसी आदेशों (कई स्थानों) को शिकार करने के बाद, मैंने स्पष्ट रूप से महसूस किया कि आरएसपीईसी की 1.3.2 शाखा अपने बाइनरी "spec" शीर्षक और "rspec" शीर्षक नहीं देती है।

तो सही आदेश हमेशा "बंडल निष्पादन स्पेक स्पेक/मॉडल/..." डालते थे "आरएसपीईसी" का अर्थ यह था कि बंडलर इसे मेरे वर्तमान आरवीएम/रत्न में ढूंढने में असफल रहा और अंततः मेरे पूरे रास्ते से खोज कर चला गया एक/opt/local/bin प्रतिलिपि जो rspec2.x इंस्टॉल से संबंधित है।

यह संभव है कि एक उपनाम rspec 1.3.2 को "rspec" कमांड का जवाब देने की अनुमति देता है, लेकिन यह मेरे लिए मामला नहीं था। आरएसपीसी-कोर और अन्य 2.x मॉड्यूल के लिए उस कॉल से बचने के लिए "spec" का उपयोग 100% विश्वसनीय था।

प्रश्न और उपरोक्त सभी शोध के लिए धन्यवाद। चार्ल्स

1

ऐसा लगता है कि आरएसपीसी-कोर, जो आरएसपीईसी के एक संस्करण से है जो केवल रेल का समर्थन करता है 3, समस्या हो सकती है। इसे अनइंस्टॉल करने का प्रयास करें और इसे अपने Gemfile से हटा दें।

group :development, :local, :test do            
    gem "rspec",    "= 1.3.1"            
    gem "rspec-rails",  "= 1.3.3"            
    gem "factory_girl",  "= 1.3.3"            
    gem "webrat",    "= 0.7.3"            
    gem "shoulda",   "= 2.11.3"           
end   
+0

यदि मैं rspec-core को हटाता हूं, तो मुझे मिलता है: /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/rubygems_integration।आरबी: 143: 'मणि' में: आरएसपीसी-कोर बंडल का हिस्सा नहीं है। इसे Gemfile में जोड़ें। (जेम :: लोडरर) \t /Users/sys/src/proj/rails/ruby/1.8/bin/rspec:18 –

+0

मैं सभी rspec रत्नों को अनइंस्टॉल करने का प्रयास करता हूं, बस अपने जेमफाइल में उपरोक्त 2 रत्न डालता हूं, और चल रहा बंडल स्थापित करें। – Mori

+0

अभी भी समस्याएं पैदा करता है। हालांकि, अब यह शिकायत कर रहा है कि फ़ाइल \t में/opt/local/bin/rspec से है: 18 ... उस स्क्रिप्ट की आपकी फ़ाइल सामग्री क्या है? –

1

bundle update rspec-rails रेल के लिए इस मुद्दे को मेरे लिए तय किया गया 3.1।

संबंधित मुद्दे