在spec_helper.rb中进行哪些更改以运行我的规范?

时间:2014-03-10 18:37:46

标签: ruby-on-rails rspec specifications

我想将我的spec文件夹重组为如下所示:

-spec
  -unit
    -Controller
      -example.rb
    -model
  -Integration
    -controller
    -model

我必须在spec_helper.rb中进行哪些更改才能在/spec/unit/controller/example.rb文件中运行我的规范。?

有没有人试过根据单位/整合等高级别重组规格?

1 个答案:

答案 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处理文件的方式。


要仅运行某些规范,您可以在命令行中按tagstext过滤它们,或者只是通过提供想要的根目录:

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