`
duoerbasilu
  • 浏览: 1485277 次
文章分类
社区版块
存档分类
最新评论

Rspec 使用笔记

 
阅读更多
打算以后使用rspec 就行测试开发,由于第一次在项目中使用,所以,记录再次,便于以后查询

本文的记录参考了开源软件 angle-nest 和 Ruby-China源码

  1. 安装gem
    group :development,  :test do
      gem 'cucumber-rails', :require => false
      gem 'database_cleaner'
      gem 'factory_girl'
      gem 'factory_girl_rails'
      gem 'rspec-rails'
      gem 'capybara'
      gem 'delorean'
    end
    



  2. install

    rails generate rspec:install


  3. 运行测试
    rake spec

  4. 修改helper文件
      config.mock_with :rspec
      config.use_transactional_fixtures = false
    
      config.include Delorean
    
      DatabaseCleaner.strategy = :truncation
      config.before do
        DatabaseCleaner.clean
      end
    

  5. 安装watchr
    gem 'watchr'

  6. 新建.watchr文件
    def run_spec(file)
      unless File.exist?(file)
        puts "#{file} does not exist"
        return
      end 
    
      puts "Running #{file}"
      system "bundle exec rspec #{file}"
      puts
    end
    
    watch("spec/.*/*_spec.rb") do |match|
      run_spec match[0]
    end
    
    watch("app/(.*/.*).rb") do |match|
      run_spec %{spec/#{match[1]}_spec.rb}
    end
    

    解析
        一旦spec/目录下有以_spec.rb结尾的文件发生了改变,watchr便会自动运行run_spec 方法来对该文件进行测试。
        一旦有app/目录下有.rb结尾的文件发生了改变,立即调用run_spec 方法来执行该文件所对应的spec测试文件。
        run_file 通过文件名来检查spec文件是否存在, 然后来运行该spec (调用 system)
    



  7. 运行
    watchr .watchr

  8. 增加spark提升速度
    gem 'spork', '1.0.0rc3'

  9. 运行
    spork --bootstrap

  10. 修改spec_helper.rb
    第一,上传 rubygems,因为我们已经有bundler了
    修改spec_helper.rb文件如下
    require 'spork'
    #uncomment the following line to use spork with the debugger
    #require 'spork/ext/ruby-debug'
    
    Spork.prefork do
      ENV["RAILS_ENV"] ||= 'test'
      require File.expand_path("../../config/environment", __FILE__)
      require 'rspec/rails'
      require 'rspec/autorun'
    
      # 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}
    
      RSpec.configure do |config|
        config.mock_with :rspec
        config.use_transactional_fixtures = false
        config.include Delorean
    
        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.
    
    end

  11. 修改.rspec文件,增加如下代码
    --drb
  12. 运行spork
    spork

  13. 在运行 watchr .wtachr 速度加快了
  14. 清除test环境下的缓存,编辑config/environments/test.rb
    config.cache_classes = false








分享到:
评论

相关推荐

    rspec-style-guide:编写规格的最佳做法!

    笔记本指南假定您使用的是RSpec 3或更高版本。 您可以使用生成该指南的PDF副本 ,和一个HTML复制使用下面的命令: # Generates README.pdfasciidoctor-pdf -a allow-uri-read README.adoc# Generates README....

    rspec-webservice_matchers:黑匣子网络应用程序测试

    安装$ gem install rspec-webservice_matchers你得到什么这些新的RSpec匹配器: 笔记be_up 寻找200,但最多可追踪4次重新导向be_fast 检查Google 分数是否大于WEBSERVICE_MATCHER_INSIGHTS_KEY 85。 WEBSERVICE_...

    tdd-rails-pluralsight:使用RSpec,Capybara和Cucumber以及Pluralsight课程学习Rails的TDD

    具有RSpec,Capybara和Cucumber的测试驱动Rails 我在TDD Rails上的Pluralsight 课程中的笔记。 常用命令命令描述bin/rails s 启动Rails服务器bin/rails c 启动Rails控制台bundle exec rake routes 列出所有路线bin/...

    Chefspec:编写RSpec示例,并生成Chef食谱的覆盖率报告!

    重要笔记ChefSpec需要Ruby 2.2或更高版本以及Chef 12.14.89或更高版本! 本文档对应于master分支,该分支可能尚未发布。 请检查最新git标签的自述文件或您的版本文档的gem来源! ChefSpec旨在至少与Chef的两个最新...

    nested-collection-funtime:使用Ruby和RSpec解决三个策划的嵌套集合问题

    嵌套收藏游戏时间! 这是三个精选问题的简短回购,它们突出了对嵌套集合的有用操作。 主文件nested_collection_practice...笔记 这些问题来自演讲练习和来自图灵软件与设计学院的advanced_nested_collections.rb练习。

    笔记本API

    去污该项目旨在了解和实践使用Ruby on Rails开发的API的结构。 该项目正在使用gem 调整协议以符合的规范。依存关系Ruby 2.6.3版Rails版本6.0.3开始... rails db:migrate RAILS_ENV=test 并使用以下命令运行测试: rspec

    specjour:通过bonjour分发rspec和Cucumber

    笔记 监听程序守护程序或前台派生的监听程序的派生器loader应该加载,setsid,然后退出所有工作程序,然后具有相同的sid和gid,并且没有父pid工人pgid = 100 sid = 100 webkit_server工人pgid = 100 sid = 100 ...

    vehico_listo:车辆清单

    捆绑执行rspec规格 笔记 由于reuqest可能需要很长时间,因此会在后台处理CSV导入。 当前,无法知道有多少记录成功。 目前,角色可以是用户,sales_rep或技术人员,但可以轻松扩展 数据库体系结构使用常见的电子商务...

    statgit2:生成Git存储库统计信息(版本2)

    statgit2 生成Git开发统计信息,重启 。 跑步 npm install ...为了处理大型代码库,statgit2允许您长时间进行分析拆分:使用--max或--limit开关可通过自动化作业逐步建立您的开发统计信息。 例子

    ist的matlab代码-rails_lecture_lesson_xhtml_builder:创建一个Ruby类以使用块函数和Ruby元编程

    生成的类应能够按以下方式使用,并且还应符合此处随附的RSpec规范。 笔记 覆盖method_missing方法,并使用它来拦截对不存在的方法的调用。 每个不存在的方法都应成为标准的HTML标记: 例子 require 'xhtml_builder' ...

    Inject-Challenge:重写注入方法(创客学院第 2 周)

    挑战时间:周五、全天 + 周末(如果需要)随意使用谷歌、你的笔记、书籍等,但要完成你自己的任务 重新打开 Array 类或子类。 重写注入方法。 首先为它编写一个测试。 不要担心返回枚举器,假设块总是以不同的方式...

    Note-Sharing-for-Peddie:peddie school的笔记共享网站

    后端:Ruby on Rails 测试:Rspec,Guard,Spork,Capybara 用法 更新宝石 bundle intall bundle update 您可能需要通过运行来迁移数据库 bin/rake db:migrate 然后通过以下方式启动服务器 rails s 您的网站将位于 ...

    谷歌师兄的leetcode刷题笔记-appacademy:AppAcademy2016年11月学员

    谷歌师兄的leetcode刷题笔记应用学院 此存储库包含我为 App Academy 2016 年 11 月队列工作的文件。 每日课程作业和家庭作业 第 1 周(Ruby) - 枚举练习和幽灵游戏 - 第 2 场记忆游戏和数独 - 递归练习和单词链 - ...

    tdd-class-8-dec:笔记

    周一早晨安顿下来,确保一切都已安装并正常工作(Ruby、Rails、RSpec、SeeingIsBelieving、互联网) 弄清楚我们需要完成什么才能使课程取得成功通过探索真正了解 Ruby下午完成对象模型介绍周二早晨过程讨论还讨论...

    data-structures:数据结构实现

    笔记 HashMap VS HashSet HashMap是Map的实现,其中键被映射到值。 HashSet是Set的实现,其中每个元素都是唯一值。 测验 要运行RSpecs : 叉子/这个仓库 在项目目录中运行bundle install 在目录中(在lib和spec ...

    rails-github-actions-example:具有GitHub Actions示例的Rails CI管道

    在Rails项目中简单使用github action信息网路:Rails 6.0.0 数据库:PostgreSQL 测试:Rspec笔记# initialize Rails apprails new rails-github-actions-example --skip-turbolinks --skip-spring --database=...

    test2-autograder-john-french:GitHub Classroom创建的test2-autograder-john-french

    Ruby简介更改温度以触发自动平分器**更改温度...以了解代码文件和测试文件在项目的目录层次结构中的位置使用RSpec单元测试工具运行单个测试或测试套件了解RSpec单元测试的基本语法概述您可能会找到有用的。 此分配的存

    inflation-calculator.js-web-0615-public

    要运行Capybara测试,请输入rspec 。 在运行Capybara套件之前,使所有Jasmine测试通过。 背景 在经济学中,可以定义为价格的普遍上涨而货币的购买价值下降。 客观的 您将使用JavaScript制作通货膨胀计算器。 它将...

Global site tag (gtag.js) - Google Analytics