我喜欢在Spork的单独选项卡中运行我的Rspec测试。我通常使用rspec spec
运行我的测试,我打算用#{1}递归搜索并运行spec
文件夹中的所有内容。"
我最近意识到这实际上没有运行我的所有测试。我现在在spec/requests
中有一个未运行的spec文件。我知道这是因为我编辑了其中一个测试以引发错误,并执行以下操作:
rspec spec
- 没有引起任何错误。rspec spec/requests
- 仍未引发错误,0 examples, 0 failures
!rspec spec/requests/my_controller.rb
- bingo 。 17 examples, 1 failure
并且失败了我的错误消息。为什么Rspec找不到我的所有测试文件?这是配置问题,还是我需要使用不同的命令来运行我的测试?
我需要立即运行所有测试,以确保我不会引入回归。
(顺便说一句,不使用Spork没什么区别。)
答案 0 :(得分:69)
Rspec 应已经通过您命名的目录递归查找并查找所有测试。但请注意,它正在寻找以_spec.rb
结尾的文件。也许您的某些文件未正确命名?
如果您需要更具体地说明它应该找到哪些文件,您还可以使用--pattern
选项。例如:rspec --pattern spec/requests/*_spec.rb
。 (选项--pattern
等于-P
。取自rspec --help
)
答案 1 :(得分:3)
您可以创建佣金任务
desc "Run PCMag tests"
RSpec::Core::RakeTask.new('test') do |t|
t.rspec_opts = ["-Ilib","--format documentation","--color"]
t.pattern = ['spec/test/*.rb']
end
然后执行命令rake test。
上述命令将执行文件夹'test'
下的所有.rb测试请查看以下链接了解更多详情。
http://testautomationarchives.blogspot.in/2013/10/rspec-rake-framework-in-ruby-with.html