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

Ruby on rails 如何让Rspec运行嵌套在文件夹下的所有测试?,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,我喜欢在单独的选项卡中运行Spork来运行我的Rspec测试。我通常使用rspec spec运行测试,我想说“递归搜索并运行spec文件夹中的所有内容。” 我最近意识到,这实际上并没有运行我所有的测试。我现在在spec/requests中有一个spec文件,它没有运行。我之所以知道这一点,是因为我编辑了其中一个测试以引发错误,并运行了以下操作: rspec规范-未引发任何错误 rspec规范/请求-仍然没有出现错误,并且0个示例,0个失败 rspec spec/requests/my_cont

我喜欢在单独的选项卡中运行Spork来运行我的Rspec测试。我通常使用
rspec spec
运行测试,我想说“递归搜索并运行
spec
文件夹中的所有内容。”

我最近意识到,这实际上并没有运行我所有的测试。我现在在
spec/requests
中有一个spec文件,它没有运行。我之所以知道这一点,是因为我编辑了其中一个测试以引发错误,并运行了以下操作:

  • rspec规范
    -未引发任何错误
  • rspec规范/请求
    -仍然没有出现错误,并且
    0个示例,0个失败
  • rspec spec/requests/my_controller.rb
    -宾果游戏<代码>17个示例,1个故障,故障有我的错误信息
为什么Rspec找不到我所有的测试文件?这是配置问题,还是需要使用其他命令来运行测试?

我需要一次运行所有测试,以确保没有引入回归


(顺便说一句,不使用Spork没有什么区别。)

Rspec应该已经递归地查看您命名的目录并找到所有测试。但是请注意,它正在查找以
\u spec.rb
结尾的文件。可能您的某些文件命名不正确


如果需要更具体地说明应该查找哪些文件,还可以使用
--pattern
选项。例如:
rspec--pattern spec/requests/*.\u spec.rb
。(选项
--pattern
等于
-P
。取自
rspec--help

您可以创建一个rake任务

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测试

请查看以下链接以了解更多详细信息