我想要在以下层次结构中进行分组的一套RSpec测试:
tests/
featA/
t1.rb
t2.rb
featB/
t3.rb
但是当我跑步时
$ rspec tests
我得到以下内容:
rspec tests
No examples were matched. Perhaps {:unless=>#<Proc:0x00007f318919cc08@/usr/lib/ruby/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:51>, :if=>#<Proc:0x00007f318919cdc0@/usr/lib/ruby/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:50>} is excluding everything?
Finished in 0.00003 seconds
0 examples, 0 failures
我觉得自己很生气,但似乎没有办法让RSpec递归地为测试文件生成?这个功能是否存在?
编辑:
我有一个解决方法:
$ rspec `find tests -name "*.rb"`
但我怀疑我不应该这样做。我是对的吗?
答案 0 :(得分:6)
你已经暴露了我的疏忽!在rspec-1中,您可以这样说:
spec test --pattern "**/*.rb"
但是rspec-2中缺少--pattern选项。我刚刚添加了它(in development),它将包含在rspec-2.6.0版本中。
答案 1 :(得分:1)
我通常通过rake
管理我的规格上运行的RSpec。我的Rakefile
的相关部分看起来像这样:
require 'rspec/core/rake_task'
RSpec::Core::RakeTask.new(:spec) do |t|
t.rspec_opts = ['--color', '-f progress', '-r ./spec/spec_helper.rb']
t.pattern = 'spec/**/*_spec.rb'
t.fail_on_error = false
end
现在rake spec
使用适当的选项运行RSpec;您需要更改t.pattern
以匹配您要运行的规范。
请务必查看RSpec2 site以获取更多信息。