2012-09-23 12 views
6

मैं RSpec के लिए एक विकल्प के रूप में Minitest :: युक्ति का परीक्षण कर रहा हूँ की आवश्यकता होती है, लेकिन मैं एक परेशान समस्या मैं काफी का जवाब स्पॉट नहीं कर सकता है:Minitest का उपयोग करना, 'minitest_helper' लोड त्रुटि

मैं spec/models/*_spec.rb में कुछ बुनियादी चश्मा स्थापित कर चुके हैं। मेरे रेल एप्लिकेशन minitest-rails भी शामिल है, और मैं अपने rakefile निर्धारित किया है इस प्रकार है:

Rake::TestTask.new do |t| 
    t.libs.push "lib" 
    t.test_files = FileList['spec/**/*_spec.rb'] 
    t.verbose = true 
end 
task :default => :test 

अब, अगर मैं इस तरह मेरी कल्पना फ़ाइलें लिखने:

require 'minitest_helper' 

describe User do 
    ... 
end 

... और rake test चलाने के लिए, मैं :

user_spec.rb:1:in `require': cannot load such file -- minitest_helper (LoadError) 

लेकिन, अगर मैं बदल

require_relative '../minitest_helper' 
करने के लिए लाइन की आवश्यकता होती है

फिर यह काम करता है। तो, यह कार्यात्मक है, लेकिन ऐसा लगता है कि मिनीटास्ट चश्मे का उपयोग करने वाले लोगों के हर उदाहरण में मुझे ऑनलाइन लगता है कि वे require 'minitest_helper' पर कॉल कर रहे हैं, require_relative नहीं। तो, मुझे क्या याद आ रहा है जो दूसरों के लिए यह काम करने देता है लेकिन मेरी स्थिति में नहीं? जानकारी के

एक आखिरी टुकड़ा, मेरे सहायक फ़ाइल इस तरह दिखता है:

# spec/minitest_helper.rb 
ENV["RAILS_ENV"] = "test" 
require File.expand_path('../../config/environment', __FILE__) 

require "minitest/autorun" 
require "minitest/rails" 

# Uncomment if you want Capybara in accceptance/integration tests 
# require "minitest/rails/capybara" 

# Uncomment if you want awesome colorful output 
# require "minitest/pride" 

class MiniTest::Rails::ActiveSupport::TestCase 
    # Add more helper methods to be used by all tests here... 
end 

कुछ भी नहीं फैंसी। सहायता के लिए धन्यवाद!

उत्तर

7

आपके परीक्षणों में सहायक फ़ाइल नहीं मिल रही है क्योंकि आपने यह देखने के लिए अपने परीक्षणों को नहीं बताया है कि यह कहां है। इस पर अपना रेक कार्य बदलने का प्रयास करें:

Rake::TestTask.new do |t| 
    t.libs << "lib" 
    t.libs << "spec" 
    t.test_files = FileList['spec/**/*_spec.rb'] 
    t.verbose = true 
end 
task :default => :test 
+1

't.libs <<" spec "निश्चित रूप से। धन्यवाद। – Andrew

1

रूबी 1.9 में, कार्यशील निर्देशिका रूबी लोड पथ में शामिल नहीं है। आप इसे जोड़ सकते हैं अगर आप चाहते हैं:

$: << "." 

... या आप किसी भी अन्य निर्देशिकाओं जो आप से require रूबी फ़ाइलों करना चाहते हैं जोड़ सकते हैं।

यदि आप देखते हैं अन्य लोगों को सिर्फ लेखन:

require 'minitest_helper' 

... तो निस्संदेह वे अपने लोड पथ के लिए कुछ किया है (या रेल/रैक उनके लिए यह किया गया है)। लोड राउंड (यदि कुछ भी हो) के साथ रेल/रेक क्या करते हैं, यह देखने के लिए आप अपने रेकैकाइल के अंदर p $: आज़मा सकते हैं।

+0

यह समझ में आता है, धन्यवाद! – Andrew

+0

कृपया ध्यान दें कि वर्तमान पथ को 1.9.2 में खोज से हटा दिया गया है, बिना किसी कारण के – UncleGene