我目前使用 JSON 文件动态生成测试,如下所示:
耙文件:
#...
Rake::TestTask.new(:run_spec_tests) { |t|
t.libs = ['lib']
t.pattern = 'test/test_spec.rb'
t.verbose = true
t.warning = false
}
测试/test_spec.rb
class TestSpec < Minitest::Test
cases = JSON.parse(open('test/tests.json', 'r').read)
cases.each do |testcase|
# run hundreds of tests
define_method("test_example_#{testcase['example']}") do
puts "Testing example #{testcase['example']}"
actual = mything.render(testcase['input'])
assert_equal testcase['output'], actual, testcase['output']
end
end
end
该 JSON 文件中的每个对象都有一个关联的编号,因此我希望能够仅引用其中一个测试并让 Rake::TestTask 做它的事情。
不幸的是,似乎没有办法将参数传递给 TestTask 之类的
rake test run_spec_test 123
这样 TestTask 就可以运行之前动态定义的方法之一。
我错过了什么吗?