我想将我的spec文件夹重组为如下所示:
-spec
-unit
-Controller
-example.rb
-model
-Integration
-controller
-model
我必须在spec_helper.rb中进行哪些更改才能在/spec/unit/controller/example.rb文件中运行我的规范。?
有没有人试过根据单位/整合等高级别重组规格?
答案 0 :(得分:0)
您无需更改spec_helper.rb
中的任何内容。但是,您需要将example.rb
更改为example_spec.rb
这是实现此目的的相关代码行
/gems/rspec-rails-2.14.1/lib/rspec/rails/tasks/rspec.rake
:namespace :spec do types = begin dirs = Dir['./spec/**/*_spec.rb']. map { |f| g=f.sub(/^\.\/(spec\/\w+)\/.*/, '\\1') ; puts ">>> Found #{g}."; g }. uniq. select { |f| File.directory?(f) } Hash[dirs.map { |d| [d.split('/').last, d] }] end
因此_spec.rb之前的文件名中的所有文本都是约定 - 它不会改变Rails处理文件的方式。
要仅运行某些规范,您可以在命令行中按tags或text过滤它们,或者只是通过提供想要的根目录:
rspec . --example controller # only runs tests which have the word 'controller' in them
rsepc . --tag model # only runs tests which are tagged as 'model' => true
rspec ./spec/unit # only runs specs which are under ./spec/unit