2

現在、次のように 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 つだけを実行できるようにします。

何か不足していますか?

4

0 に答える 0