2012-11-30 5 views
7

के माध्यम से मैं एक MiniTest सूट है जब। मैं मूल Minitest::Unit::TestCase का उपयोग कर रहा हूं, चश्मा नहीं। मैं setup और teardown तरीकों मेरी TestCase उपवर्ग में परिभाषित किया गया है। जब मैं एक परीक्षण फ़ाइल चलाता हूं तो वे पूरी तरह से काम करते हैं: ruby test/whatever_test.rb। लेकिन जब मैं rake test, setup और teardown चलाने बुलाया नहीं कर रहे हैं। मेरी Rakefile के संबंधित भाग है: जब Rake::TestTask प्रयोग किया जाता हैMinitest #setup और नहीं कहा #teardown परीक्षण चालन रैक

require 'rake/testtask' 

Rake::TestTask.new do |t| 
    t.test_files = FileList['test/*_test.rb'] 
    t.verbose = true 
end 

क्यों setup और teardown चलाया जा नहीं होगा?

मैं यहाँ में परीक्षण का मामला कोड पेस्ट चाहते हैं, लेकिन वहाँ काफी इसके बारे में एक बहुत कुछ है। यदि आप कोई विशेष अनुभाग देखना चाहते हैं, तो मैं निश्चित रूप से इसके कुछ सबसेट में पेस्ट करूँगा।

मैं Minitest 4.3.2 चल रहा हूँ रूबी 1.9.3-p194 पर।

+1

आप एक न्यूनतम नहीं काम परीक्षण पोस्ट कर सकते हैं? – tadman

उत्तर

14

समस्या यह थी कि एक और टेस्ट केस setup और teardown विधियों को ओवरराइट कर रहा था। मैंने गलती से दो टेस्ट केस एक ही कक्षा के नाम दिए थे, यही कारण है कि ओवरराइटिंग हुई। स्वाभाविक रूप से, यह त्रुटि तब नहीं हुई जब मैंने एक टेस्ट केस चलाया, जो रेक का उपयोग करते समय व्यवहार में अंतर बताता है।

+0

रेल 5 सिस्टम परीक्षणों में यह समान समस्या थी (जो न्यूनतम उपयोग करता है)। जब हम अपने सभी प्रणाली परीक्षण भाग गया एक प्रणाली परीक्षण के लिए सेटअप विधि मार डाला गया था नहीं किया जा रहा है, लेकिन यह क्रियान्वित किया गया था जब हम केवल यह है कि प्रणाली परीक्षण फ़ाइल भाग गया। हमारे ठीक बस कुछ और करने के लिए प्रणाली परीक्षण फ़ाइल का नाम बदलने गया था और उस अधिभावी कि होने वाली था तय की। धन्यवाद! – Neil

1

मेरे मामले में, मैं सॉकेट संचार के लिए परीक्षण लिख रहा था और send नाम के एक सहायक विधि जोड़े थे। चूंकि MiniTest send का उपयोग करता है आंतरिक टियरडाउन तरीकों कॉल करने के लिए, यह बजाय मेरी send विधि-प्रेषण के बजाय खुद को बुला रहा था।

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