【发布时间】:2014-05-15 01:28:34
【问题描述】:
我有一个用 Ruby 1.9.3(最新稳定的 Windows RubyInstaller)编写的 TDD 解决方案。
应用程序位于 app 目录和同级测试目录中,我有 4 个包含测试的文件。
我有一个 Rakefile 执行仅包含测试用例文件的 MiniTest 测试套件。 需要'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 test 时,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 会抱怨预期的错误消息,所以我知道它正在“看到”该文件。
知道为什么 4 个测试用例文件中有 2 个没有被执行吗?
【问题讨论】:
-
如果重命名测试以使其以“test_”开头会发生什么情况?我不知道这个特定的框架,但我使用的其他框架要求测试名称以“test_”开头
-
感谢塞巴斯蒂安。所有 4 个测试文件都以“tc_”开头。只有 2 个不工作
-
我指的是测试本身的名称,而不是文件。具体来说,如果您将这个特定文件中的测试方法重命名为“test_requirement_3”“test_requirement_1”等会发生什么。
-
谢谢塞巴斯蒂安,就是这样!现在正在执行测试。如果您想将此添加为答案,我会将其标记为这样。
标签: ruby-on-rails ruby