zoukankan      html  css  js  c++  java
  • rspec测试(使用guard自动测试和spork加速测试)配置

    Gemfile文件添加rspec、guard和spork,之后执行bundle install命令

    gem 'rb-readline'
    group :development, :test do
      # Call 'byebug' anywhere in the code to stop execution and get a debugger console
      gem 'byebug'
    
      #rspec
      gem 'rspec-rails'
    
      #guard
      gem 'guard-rspec'
      gem 'selenium-webdriver'
      gem 'capybara'
    
      #spork
      gem 'spork-rails'
      gem 'guard-spork'
      gem 'childprocess'
    end

    引入rspec到rails工程中执行:rails g rspec:install

    root@jec:~/RubymineProjects/Brush# rails g rspec:install
          create  .rspec
          create  spec
          create  spec/spec_helper.rb
          create  spec/rails_helper.rb

    之后会在工程添加spec文件夹,如下图所示:

    rspec已经引入成功,接下来初始化Guard,这样guard才能和rspec一起使用,执行:bundle exec guard init rspec

    root@jec:~/RubymineProjects/Brush# bundle exec guard init rspec
    15:15:51 - INFO - Writing new Guardfile to /root/RubymineProjects/Brush/Guardfile
    15:15:51 - INFO - rspec guard added to Guardfile, feel free to edit it

    运行guard:bundle exec guard

    root@jec:~/RubymineProjects/Brush# bundle exec guard
    19:09:06 - INFO - Guard::RSpec is running
    19:09:06 - INFO - Guard is now watching at '/root/RubymineProjects/Brush'
    [1] guard(main)> 

    接下来导入Spork的设置:bundle exec spork --bootstrap

    root@jec:~/RubymineProjects/Brush# bundle exec spork --bootstrap
    Using RSpec, Rails
    Bootstrapping /root/RubymineProjects/Brush/spec/spec_helper.rb.
    Done. Edit /root/RubymineProjects/Brush/spec/spec_helper.rb now with your favorite text editor and follow the instructions.

    修改spec/spec_helper.rb的rspec设置文件,让所需的环境在一个预派生(prefork)代码块中加载,保证环境只被加载一次

    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'
    # Requires supporting ruby files with custom matchers and macros, etc,
    # in spec/support/ and its subdirectories.
      Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
    # Checks for pending migrations before tests are run.
    # If you are not using ActiveRecord, you can remove this line.
      ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
      RSpec.configure do |config|
    # ## Mock Framework
    #
    # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
    #
    # config.mock_with :mocha
    # config.mock_with :flexmock
    # config.mock_with :rr
    # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
        config.fixture_path = "#{::Rails.root}/spec/fixtures"
    # If you're not using ActiveRecord, or you'd prefer not to run each of your
    # examples within a transaction, remove the following line or assign false
    # instead of true.
        config.use_transactional_fixtures = true
    # If true, the base class of anonymous controllers will be inferred
    # automatically. This will be the default behavior in future versions of
    # rspec-rails.
        config.infer_base_class_for_anonymous_controllers = false
        # config.order = "random"
        config.include Capybara::DSL
      end
    end

    运行spork:bundle exec spork

    #在启动spork之前,一定要先创建测试数据库,即执行rake db:create和rake db:migrate命令
    root@jec:~/RubymineProjects/Brush# bundle exec spork
    Using RSpec, Rails
    Preloading Rails environment
    Loading Spork.prefork block...
    Spork is ready and listening on 8989!

     Guard和Spork协作,执行:bundle exec guard init spork

    之后只要执行bundle exec guard就会自动启动spork服务器

    root@jec:~/RubymineProjects/Brush# bundle exec guard init spork
    19:21:28 - INFO - spork guard added to Guardfile, feel free to edit it

    执行:bundle exec guard

    root@jec:~/RubymineProjects/Brush# bundle exec guard
    19:21:36 - INFO - Guard::RSpec is running
    19:21:36 - INFO - Starting Spork for RSpec
    Using RSpec, Rails
    Preloading Rails environment
    Loading Spork.prefork block...
    Spork is ready and listening on 8989!
    19:21:39 - INFO - Spork server for RSpec successfully started
    
    19:21:39 - INFO - Guard is now watching at '/root/RubymineProjects/Brush'
    [1] guard(main)> 

    ok

  • 相关阅读:
    MCU 51-4 独立按键&编码按键
    MCU 51-3定时器
    MCU 51-2 LED and Digital tube Test
    MCU 51-1概述
    STM32的启动方式
    Java蓝桥杯——排序练习:选美大赛
    蓝桥杯——剪邮票(2016JavaB组第10题)
    蓝桥杯——压缩变换(2016JavaB组第9题)
    蓝桥杯——Java集合练习题
    蓝桥杯——螺旋折线(2018JavaB组第7题19分)
  • 原文地址:https://www.cnblogs.com/jecyhw/p/5173575.html
Copyright © 2011-2022 走看看