如何在运行rake测试时跳过一些测试文件夹

时间:2013-04-22 11:45:44

标签: ruby-on-rails ruby rake rake-task rake-test

我有以下配置来运行gem的测试:

require 'rake/testtask'

Rake::TestTask.new(:test) do |t|
  t.libs << 'lib'
  t.libs << 'test'
  t.pattern = 'test/**/*_test.rb'
  t.verbose = false
end

在我的test文件夹中我有一个文件夹(比方说skipped_tests),其中包含我不想用此任务测试的测试。 是否可以调整模式以跳过特定文件夹,如下所示:

t.pattern = 'test/^skipped_tests/*_test.rb'

请分享您的想法。

由于

2 个答案:

答案 0 :(得分:2)

您可以使用test_files代替pattern,如下所示:

t.test_files = Dir['test/**/*_test.rb'].reject do |path| 
  path.include?('skipped_test')
end

答案 1 :(得分:0)

一种选择是将FileListtest_files属性一起使用。与手动执行拒绝相比,它可能更简洁(和/或更精确)。

因此,OP的示例将变为:

require 'rake/testtask'

Rake::TestTask.new(:test) do |t|
  t.libs << 'lib'
  t.libs << 'test'
  t.test_files = FileList['test/**/*_test.rb'].exclude('test/skipped_tests/**/*')
  t.verbose = false
end