2014-05-13 27 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等。

相关问题