MiniTest套件仅运行4个测试用例文件中的两个

时间:2014-05-13 03:37:12

标签: ruby-on-rails ruby

我有一个用Ruby 1.9.3编写的TDD解决方案(最新稳定的Windows RubyInstaller)。

应用程序位于app目录中,在兄弟测试目录中,我有4个包含测试的文件。

我有一个执行MiniTest测试套件的Rakefile,它只包含测试用例文件。     要求' rake / 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'

当我从命令行执行rake测试时,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

如果我故意在两个未执行的测试用例文件中的一个中输入语法错误,Rake会抱怨预期的错误消息,所以我知道它是&#34;看到&#34;文件。

为什么4个测试用例文件中有2个没有被执行?

1 个答案:

答案 0 :(得分:2)

听起来您的测试框架需要测试函数名称才能开始test_。尝试重命名您的测试函数,使其格式为test_requirement_1test_requirement_2等。