项目开发中,快速增加 Rspec的支持, 快速增加 spork 和 guard 的支持

3 篇文章 0 订阅
2 篇文章 0 订阅

Rspec非常的强大,一旦用上,在也舍不得换了。 不过每次集成Rspec都比较麻烦,因为相关的Gem比较多,而且需要修改一些配置文件。本文记录下我集成Rspec集成过程。


  1.  增加Gem
    group :development, :test do  
      gem 'database_cleaner'
      gem 'factory_girl'
      gem 'factory_girl_rails'
      gem 'rspec-rails', '2.9.0'
      gem 'capybara', '1.1.2'
    end
    

    运行命令
    bundle install 

  2. 生成spec_helper.rb文件
    rails g rspec:install

  3. 修改spec_helper.rb文件
    ENV["RAILS_ENV"] ||= 'test'
    require File.expand_path("../../config/environment", __FILE__)
    require 'rspec/rails'
    require 'rspec/autorun'
    
    require 'capybara/rspec'
    
    Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
    
    RSpec.configure do |config|
      config.mock_with :rspec
    
      DatabaseCleaner.strategy = :truncation
      config.before do  
        DatabaseCleaner.clean
      end 
    
    end
    
    对capybara和databaseclean的支持

  4. 然后在增加了 integeration 测试 一下吧
    rails g rspec:integration create_interface

  5. 运行命令
    bundle exec rspec spec/requests/create_interfaces_spec.rb 

  6. 修改一下代码,在测试
    describe "CreateInterfaces" do
      describe "GET root_url" do
        it "visit root_url" do
          visit root_url
        end 
      end 
    end
    

  7. 基本上已经可以跑同了,但是还有很多其他的问题。比如没有spork 和 guard的支持,下次总结。

    ###############################################z
  8. 增加spork的支持
    gem 'spork', '~> 1.0rc'

    运行命令
    spork rspec --bootstrap

    修改spec_helper.rb,如
    require 'rubygems'
    require 'spork'
    
    Spork.prefork do
      # Loading more in this block will cause your tests to run faster. However,
      # if you change any configuration or code from libraries loaded here, you'll
      # need to restart spork for it take effect.
    
      ENV["RAILS_ENV"] ||= 'test'  
      require File.expand_path("../../config/environment", __FILE__)  
      require 'rspec/rails'  
      require 'rspec/autorun'  
    
      require 'capybara/rspec'  
    
      Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}  
    
      RSpec.configure do |config|  
        config.mock_with :rspec  
    
        config.include Devise::TestHelpers, :type => :controller  
    
        DatabaseCleaner.strategy = :truncation  
    
        config.before do    
          DatabaseCleaner.clean  
        end   
    
      end  
    
    end
    
    Spork.each_run do
      # This code will be run each time you run your specs.
     require 'rspec/rails'
      Dir["#{Rails.root}/app/controllers//*.rb"].each do |controller|
        load controller
      end 
    
      Dir["#{Rails.root}/app/models//*.rb"].each do |model|
        load model
      end 
    
      Dir["#{Rails.root}/app/models/ext_model//*.rb"].each do |model|
        load model
      end 
      FactoryGirl.reload
    
    end
    

    修改.rspec文件
    --drb

    使用如下命令测试
    bundle exec spork  # run spork!
    rake spec # run all spec test

  9. 增加guard支持
      gem 'guard'
      gem 'guard-spork', '0.3.2'
      gem 'guard-rspec'



  10. 生成Guard配置文件
    guard init

    修改配置文件
    guard 'rspec', :version => 2, :all_on_start => false, :all_after_pass => false  do
       ... ...
    end

    首先启动,不 运行所有的测试例子, 测试成功后,不运行所有的测试用列





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值