我有以下配置来运行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'
请分享您的想法。
由于
答案 0 :(得分:2)
您可以使用test_files
代替pattern
,如下所示:
t.test_files = Dir['test/**/*_test.rb'].reject do |path|
path.include?('skipped_test')
end
答案 1 :(得分:0)
一种选择是将FileList
与test_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