2014-04-28 3 views
18

तो this link के अनुसार एक शॉर्टकट रैपर है (इसलिए मुझे लगता है कि वे वही हैं)।जब मैं 'बंडल निष्पादन रेक परीक्षण चलाता हूं: इसे तैयार करें' तैयार करें, लेकिन 'बंडल निष्पादन रेक डीबी: परीक्षण: तैयार करें' चेतावनी के साथ ठीक से चला जाता है। क्या चल रहा है?

जब मैं bundle exec rake db:test:prepare भाग गया, मैं इस त्रुटि मिलती है:

Don't know how to build task 'test:prepare' 
/Users/aj/.rvm/gems/[email protected]_rails_4_0/bin/ruby_executable_hooks:15:in `eval' 
/Users/aj/.rvm/gems/[email protected]_rails_4_0/bin/ruby_executable_hooks:15:in `<main>' 

... लेकिन जब मैं bundle exec rake db:test:prepare भाग गया, मैं इस चेतावनी मिलती है:

WARNING: db:test:prepare is deprecated. The Rails test helper now maintains your test schema automatically, see the release notes for details. 

किसी को भी इस पर प्रकाश डाला कर सकते हैं?

+0

मुझे लगता है कि त्रुटि के बजाय वाक्य रचना @Logan Serman उल्लेख सुझाव देने चाहिए। यह मानने के लिए अजीब है कि किसी के टेस्ट/स्पेक हेल्पर के पास "अपडेटेड" वाक्यविन्यास होगा। – Tass

उत्तर

49

रेल 4.1 में, उन्होंने डीबी को हटा दिया: परीक्षण: उस संदेश के साथ तैयार करें। अब आप उपयोग कर सकते हैं:

ActiveRecord::Migration.maintain_test_schema!

spec_helper.rb में

(या इसी तरह फ़ाइलों यदि आप RSpec का उपयोग नहीं कर रहे हैं)। यह स्वचालित रूप से आपके स्कीमा के साथ सिंक में आपके परीक्षण डेटाबेस को रखेगा। इस 'स्वचालित' विधि के कारण, डीबी: परीक्षण: ज्यादातर मामलों में तैयार करने की आवश्यकता नहीं है।

आप किसी कारण से इसे मैन्युअल रूप से करने की जरूरत है, तो आप अभी भी उपयोग कर सकते हैं

rake db:schema:load RAILS_ENV=test

+0

मुझे नहीं लगता कि यह वसंत के साथ संयोजन में अच्छी तरह से काम करता है। – maletor

+0

वसंत में निश्चित रूप से कुछ समस्याएं हैं, लेकिन मैं बीटा के बाद हर दिन रेल 4.1 का उपयोग कर रहा हूं और 'maintain_test_schema!' और वसंत का उपयोग करने में कोई समस्या नहीं थी। –

+6

एक संभावित गोचा 'ActiveRecord :: माइग्रेशन.मेंटैन_टेस्ट_स्केमा!' माइग्रेशन जोड़े जाने पर सही तरीके से काम करने में विफल रहता है, परीक्षण चलाए जाते हैं, फिर 'रेक डीबी: रोलबैक' का उपयोग किया जाता है, फिर माइग्रेशन बदल जाता है। ऐसा लगता है कि स्कीमा अद्यतित है जब यह नहीं है। – JamieD

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