2012-05-19 7 views
5

से यूनिट परीक्षण चला रहा है क्या कोई irb या pry सत्र के अंदर से testfile चलाने का कोई तरीका है?irb या pry

मैंने load './testfile.rb की कोशिश की, लेकिन यह testfile में परीक्षण नहीं चलाता है।

मेरे testfile इस तरह दिखता है:

require 'test/unit' 
require './sudoku.rb' 

class SudokuTest < Test::Unit::TestCase 
    def test_initialize 
    assert_nothing_raised do 
     Sudoku.new(Array.new(9*9)) 
    end 
    assert_nothing_raised do 
     Sudoku.new(Array.new(9*9,Field.new(nil))) 
    end 
    end 
end 

उत्तर

4

टेस्ट वास्तव में सहभागी उस तरह चलाने के लिए नहीं होती हैं, लेकिन अगर आप गहरे लाल रंग का मानक पुस्तकालय में देखने के लिए और फ़ाइल test/unit.rb को देखो आपको लगता है कि यह एक at_exit हैंडलर सेट देखेंगे जब आप require 'test/unit':

at_exit do 
    unless $! || Test::Unit.run? 
    Kernel.exit Test::Unit::AutoRunner.run 
    end 
end 

तो यह सब आप अपने irb सत्र में क्या करने की जरूरत पर देख रहे हैं कॉल है:

Test::Unit::AutoRunner.run 

यह आपके द्वारा लोड किए गए सभी परीक्षणों को चलाएगा जो Test::Unit::TestCase से उप-वर्गीकृत हैं।

आप इसे irb सत्र में लोड करने के बिना परीक्षण फ़ाइल को चलाने के लिए, चाहते हैं, तो आप बस कर सकता है:

system 'ruby testfile.rb' 
0

यह क्योंकि आप इसे न पूछ रहे परीक्षण नहीं चलता है। आप कक्षा कक्षा बना रहे हैं।

इस प्रयास करें:

tests = SudokuTest.new 
tests.test_initialize 
+0

यदि मैं इसे आज़माता हूं तो मुझे मिलता है: 'ArgumentError: SudokuTest.new को कॉल करते समय तर्कों की गलत संख्या (1 के लिए 0)' और मैं यह नहीं समझ सकता कि यह वास्तव में तर्क के रूप में क्या चाहता है। – FlyingFoX

+0

तर्क विधि का होना चाहिए जिसे परीक्षण किया जाना चाहिए: http://test-unit.rubyforge.org/test-unit/Test/Unit/TestCase.html#method-c-new। बस 'सुडोकूटेस्ट.न्यू: test_initialize' आज़माएं। –

+0

'सुडोकूटेस्ट.न्यू' का प्रयोग करके: test_initialize' एक सुडोकूटेस्ट ऑब्जेक्ट बनाता है, लेकिन इसे 'test_initialize'' पर कॉल करने से मुझे 'NoMethodError: अपरिभाषित विधि' add_assertion 'शून्य के लिए देता है: NilClass' – FlyingFoX

0

शायद plymouth तुम क्या चाहते है। यह असफल परीक्षण के संदर्भ में स्वचालित रूप से एक प्राइ सत्र शुरू कर सकता है।

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