現在、次のように JSON ファイルを使用してテストを動的に生成しています。
レーキファイル:
#...
Rake::TestTask.new(:run_spec_tests) { |t|
t.libs = ['lib']
t.pattern = 'test/test_spec.rb'
t.verbose = true
t.warning = false
}
test/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 ファイル内のすべてのオブジェクトには番号が関連付けられているため、これらのテストの 1 つだけを参照して、Rake::TestTask にその機能を実行させたいと考えています。
残念ながら、次のように TestTask に引数を渡す方法はないようです
rake test run_spec_test 123
TestTask が以前に動的に定義されたメソッドの 1 つだけを実行できるようにします。
何か不足していますか?