2011-06-29 46 views
26

Thay vì chạy tất cả các trường hợp thử nghiệm tự động, có cách nào để thực hiện một thử nghiệm đơn theo khuôn khổ thử nghiệm/đơn vị ruby ​​không. Tôi biết tôi có thể đạt được điều đó bằng cách sử dụng Rake nhưng tôi chưa sẵn sàng chuyển sang rake vào lúc này.Làm cách nào để thực hiện một thử nghiệm đơn lẻ bằng thử nghiệm/đơn vị Ruby?

ruby unit_test.rb #this will run all the test case 
ruby unit_test.rb test1 #this will only run test1 

Trả lời

39

bạn có thể vượt qua các tùy chọn -n trên dòng lệnh để chạy một thử nghiệm duy nhất:

ruby my_test.rb -n test_my_method 

nơi 'test_my_method' là tên của phương pháp kiểm tra bạn muốn chạy.

+1

+1 Chính xác những gì tôi muốn. Nhưng tôi chỉ chấp nhận nó sau 6 phút .. – pierrotlefou

+3

Tùy chọn đầy đủ là '--name' nếu bạn thích các tùy chọn dài. –

+3

Cũng hỗ trợ regex: ruby ​​my_test.rb -n /test_.*/ – imwilsonxu

8

Nếu bạn tìm kiếm giải pháp không phải vỏ, bạn có thể xác định một TestSuite.

Ví dụ:

gem 'test-unit' 
require 'test/unit' 
require 'test/unit/ui/console/testrunner' 

#~ require './demo' #Load the TestCases 
# >>>>>>>>>>This is your test file demo.rb 
class MyTest < Test::Unit::TestCase 
    def test_1() 
    assert_equal(2, 1+1) 
    assert_equal(2, 4/2) 

    assert_equal(1, 3/2) 
    assert_equal(1.5, 3/2.0) 
    end 
end 
# >>>>>>>>>>End of your test file 


#create a new empty TestSuite, giving it a name 
my_tests = Test::Unit::TestSuite.new("My Special Tests") 
my_tests << MyTest.new('test_1')#calls MyTest#test_1 

#run the suite 
Test::Unit::UI::Console::TestRunner.run(my_tests) 

Trong cuộc sống thực, những MyTest lớp thử nghiệm sẽ được nạp từ các tập tin thử nghiệm ban đầu.

Các vấn đề liên quan