使用rake testtask测试一组特定的测试用例

时间:2013-12-16 14:54:39

标签: ruby unit-testing rake rake-task rakefile

有些测试需要互联网连接,有些则不需要。因此,它们分为两个具有不同文件名模式的测试组。如何在Rakefile下面更新,以便它们可以使用不同的rake任务单独运行?

似乎问题/答案here在这种情况下无效。

下面的rakefile运行所有测试用例,无论在命令行上调用哪些rake任务。 rake testrake itest都没有按预期工作。

当前的Rakefile内容是,

require 'rake/testtask'

Rake::TestTask.new do |t|
  t.test_files = FileList['test/test_*.rb']
end

Rake::TestTask.new do |t|
  t.test_files = FileList['test/itest_*.rb']
end

desc "Run tests with no internet required"
task :default => :test

desc "Run tests need internet connection"
task :internet => :test

1 个答案:

答案 0 :(得分:2)

我已经想出如何将不同的测试任务与不同的rake任务相关联。诀窍是在创建新的测试任务时添加任务名称。像这样,

Rake::TestTask.new(:default) do |t|
  t.test_files = FileList['test/test_*.rb']
end

Rake::TestTask.new(:internet) do |t|
  t.test_files = FileList['test/itest_*.rb']
end

desc "No internet connection required"
task :default => :test

desc "Needs internet connection"
task :internet => :test

所以rake internet只运行需要互联网连接的测试用例。