2013-02-14 9 views
6

मैं केवल डाटाबेस क्लीनर प्रयोग करने के लिए इस शांत विधि देखा js => trueरेल Rspec Capybara और DatabaseCleaner केवल सुविधा पर काट-छांट का उपयोग कर परीक्षण

spec_helper.rb में:

config.before(:each) do 
    DatabaseCleaner.strategy = if example.metadata[:js] 
    :truncation 
    else 
    :transaction 
    end 
    DatabaseCleaner.start 
end 

config.after(:each) do 
    DatabaseCleaner.clean 
end 

समस्या यह है कि कैपिबरा के साथ किए गए किसी भी फीचर टेस्ट को सफाई रणनीति की आवश्यकता होती है: छंटनी।

हालांकि, अन्य सभी चश्मा ठीक हैं: लेनदेन, जो काफी तेज़ है।

क्या केवल कैपिबरा फीचर परीक्षणों के लिए रणनीति निर्दिष्ट करने का कोई तरीका है? की तरह कुछ:

DataCleaner.strategy(:truncation) if :type => :feature 
+1

जाने लेकिन आपके सवाल का मेरे लिए बहुत उपयोगी था! मैं 'अगर जेएस का उपयोग छंटनी' ब्लॉक का उपयोग कर रहा हूं और यह पूरी तरह से काम कर रहा है! धन्यवाद! –

+1

मदद करने के लिए खुशी हुई। इस के साथ घूमने में कितने घंटे बिताए थे, वह मजेदार नहीं था। – Squadrons

उत्तर

2

यह करना चाहिए, मैं स्वीकार किए जाते हैं जवाब की ज़रूरत नहीं थी मुझे पता

config.after(:all, :type => :feature) do 
    DatabaseCleaner.clean_with :truncation 
end 
+0

क्या आप किसी भी परीक्षण चलाने के बाद डेटाबेस को साफ़ नहीं करना चाहते हैं? – rubiii

+0

मैंने 'config.before (: suite,: type =>: सुविधा) 'के साथ प्रयास किया, लेकिन मुझे कोई भाग्य नहीं था,' DatabaseCleaner.strategy =: truncation' हमेशा चल रहा है: / –

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