2014-05-13 28 views
0

我有一個用Ruby 1.9.3(最新穩定的Windows RubyInstaller)編寫的TDD解決方案。MiniTest套件只能運行4個測試用例文件中的兩個

該應用程序位於應用程序目錄和兄弟測試目錄中,我有4個包含測試的文件。

我有一個Rakefile執行僅包含測試用例文件的MiniTest測試套件。 需要「耙/ testtask」

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

ts_test_suite.rb:

gem 'minitest' 
require_relative 'tc_requirement_tests.rb' 
require_relative 'tc_command_tests.rb' 
require_relative 'tc_movement_tests.rb' 
require_relative 'tc_placement_tests.rb' 

當我從命令行的4個文件的2成功地和(一些奇怪的原因)其他兩個執行執行耙測試沒有被執行。 tc_requirement_tests.rb是這兩個文件中的一個:

require 'test_base.rb' 
require './app/turn_to.rb' 
require './app/direction.rb' 

class RequirementTests < TestBase 
    def requirement_test_1 
    @bad_robot.place(0, 0, Direction::NORTH) 
    @bad_robot.move 
    assert_equal "Output: 0,1,NORTH", @bad_robot.report_posture 
    end 

    def requirement_test_2 
    @bad_robot.place(0, 0, Direction::NORTH) 
    @bad_robot.turn(TurnTo::LEFT) 
    assert_equal "Output: 0,0,WEST", @bad_robot.report_posture 
    end 

    def requirement_test_3 
    @bad_robot.place(1, 2, Direction::EAST) 
    @bad_robot.move 
    @bad_robot.move 
    @bad_robot.turn(TurnTo::LEFT) 
    @bad_robot.move 
    assert_equal "Output: 3,3,NORTH", @bad_robot.report_posture 
    end 
end 

如果我故意把一個語法錯誤中未執行兩個測試用例文件之一,耙預期的錯誤消息,抱怨,所以我知道它正在「看到」文件。

任何想法爲什麼4個測試用例文件中的2個未被執行?

+0

如果您重新命名測試以使其以「test_」開頭,會發生什麼?我不知道這個特定的框架,但我用過的其他框架要求測試名稱以「test_」開頭 –

+0

謝謝Sebastian。所有4個測試文件開始「tc_」。只有2個不起作用 –

+1

我的意思是測試本身的名稱,而不是文件。具體而言,如果將此特定文件中的測試方法重命名爲「test_requirement_3」「test_requirement_1」等,會發生什麼情況。 –

回答

2

這聽起來像你的測試框架需要測試函數名稱開始test_。嘗試重命名您的測試功能,以便它們的格式爲test_requirement_1,test_requirement_2等。

相關問題