我有一个非常简单Rakefile
的小 Ruby gem 来测试。它看起来像这样:
Rake::TestTask.new
task :default => :test
它调用两个定义同名常量的测试。这导致第二个测试输出错误,如下所示:
warning: already initialized constant xxxxx
这样做的原因是因为 Rake 在单个 Ruby 实例中执行所有测试:
/usr/bin/ruby -I"lib" -I"/usr/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib" "/usr/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/rake_test_loader.rb" "test/test*.rb"
我应该如何指定每个测试应该在单独的 Ruby 实例中运行?
我已经实现了这一点,如下所示,但我想知道是否有更好的方法,因为该解决方案不适用于大量测试。
Rake::TestTask.new(:one) { |t| t.test_files = %w(test/test_one.rb) }
Rake::TestTask.new(:two) { |t| t.test_files = %w(test/test_two.rb) }
task :default => [:one, :two]