如何让Rspec运行嵌套在文件夹下的所有测试?

时间:2012-02-20 14:33:31

标签: ruby-on-rails ruby rspec

我喜欢在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没什么区别。)

2 个答案:

答案 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