`
witcheryne
  • 浏览: 1100313 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

搭建Rails测试环境2: Autotest和Spork的安装和配置

阅读更多

一. 前言

        关于本篇文章介绍的安装步骤可以参考 《Rails Tutorial - by example》 (英文)的3.2节。

        如果还没有看过《搭建Rails测试环境:RSpec》    建议先看着这篇,文本将使用之前提到的环境。附件中提供了可测试本文操作的项目文件,建议在看直接下载该附件;


二. 测试工具介绍:

        1. AutoTest:

                 这个工具会在后台监控制定文件的改动,并且自动运行测试。例如,如果你改变了一个Controller,他会根这个Controller对应的测试。测试可以通过Growl进行反馈。

 

        2. Spork:

                   由于在每次运行Rspec时都需要重新加载Rails环境, Spork test server 将解决这个耗时的过程。他只加载一次Rails环境,并且维护一个pool of processes(这个地方不知道怎么描述,借用原文),为之后的测试提供Rails环境。Spork可以非常好的和AutoTest协同工作,这个可以大大提高测试效率;

 

三. AutoTest安装配置:

         1. 安装AutoTest:

sudo gem install autotest -v 4.4.6
sudo gem install autotest-rails-pure -v 4.1.2

             如果你在 Mac OS 下想用Growl 来进行测试通知(推荐使用这种方式),需要安装autotest的 fseventgrowl 模块。当然也要确保已经安装了Growl软件(Linux和windows操作系统的通知方式可以参考原文)

sudo gem install autotest-fsevent -v 0.2.4
sudo gem install autotest-growl -v 0.2.9

          2. 配置AutoTest:

vim ~/.autotest

              加入如下配置,开启Growl通知:

require 'autotest/growl'
require 'autotest/fsevent'

          3. 如何使用:

                    直接在Rails项目的根目录中输入 autotest 即可开启

 

四. Spork的安装和使用:

          1. 安装Spork:

                   在Gemfile的test group中加入 gem 'spork', '0.8.4', 然后运行 bundle install即可,完成Gemfile如下所示:

source 'http://rubygems.org'
gem 'rails', '3.0.1'

gem 'sqlite3-ruby', '1.3.2', :require => 'sqlite3'

group :development do
	gem 'rspec-rails', '2.3.0'
end

group :test do
	gem 'rspec', '2.3.0'
	gem 'webrat', '0.7.2'
	gem 'spork', '0.8.4'
end

                     如果安装spork失败,则自行使用gem安装:

sudo gem install spork

            2. 配置Spork:

                     由于Spork现在的版本还不支持Rails3.x, 这理需要一些hack技巧来让Spork支持Rails3.x

               引导Spork配置:

spork --bootstrap

               修改spec/spec_helper.rb文件,添加如下 Spork.prefork代码块:

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'
  unless defined?(Rails)
    require File.dirname(__FILE__) + "/../config/environment"
  end
  require 'rspec/rails'

  # Requires supporting files with custom matchers and macros, etc,
  # in ./support/ and its subdirectories.
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}

  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
    config.mock_with :rspec

    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, comment the following line or assign false
    # instead of true.
    config.use_transactional_fixtures = true

    ### Part of a Spork hack. See http://bit.ly/arY19y
    # Emulate initializer set_clear_dependencies_hook in 
    # railties/lib/rails/application/bootstrap.rb
    ActiveSupport::Dependencies.clear
  end
end

Spork.each_run do
end

                    如果对这个配置有疑问,可以参考附件中的对应文件

 

              修改config/application.rb文件,修改后如下所示 :

require File.expand_path('../boot', __FILE__)

require 'rails/all'

# If you have a Gemfile, require the gems listed there, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(:default, Rails.env) if defined?(Bundler)

module SampleApp
  class Application < Rails::Application
    .
    .
    .
    ### Part of a Spork hack. See http://bit.ly/arY19y
    if Rails.env.test?
      initializer :after => :initialize_dependency_mechanism do
        # Work around initializer in railties/lib/rails/application/bootstrap.rb
        ActiveSupport::Dependencies.mechanism = :load
      end
    end
  end
end

              修改项目根目录中的rspec配置文件,添加--drb运行参数 (这个参数是启动对Spork的访问)

vim .rspec

              修改后内容如下所示:

--colour
--drb

              ok~ 运行 spork 即可启动Spork

spork

 

AutoTest和Spork的写到这里,详细内容可以参考原文,文本仅供一些参考。

0
0
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    centOS Rails3环境搭建

    #### 一、准备工作与环境配置 在开始部署Rails 3开发环境之前,我们需要确保系统上已经安装了一些基本的软件包和工具。这一步骤对于后续的Ruby和Rails安装至关重要。 ##### 1. 安装Node.js Node.js在某些Rails...

    ruby on rails 环境搭建

    总的来说,搭建Ruby on Rails环境涉及到下载、安装、配置和验证各个组件,理解这些步骤可以帮助开发者快速开始他们的RoR开发之旅。同时,熟悉使用命令行工具和理解包管理器的作用对于后续的开发工作也非常重要。在...

    配置rails环境

    9. **了解Rails命令**:Rails提供了一系列的命令行工具,如`rails generate`(用于生成模型、控制器、迁移等),`rails console`(提供了一个交互式的Ruby环境,方便测试和调试),`rails dbconsole`(直接进入...

    深入解析Rails测试策略:单元测试与功能测试的区别

    单元测试和功能测试是Rails中两种主要的测试类型,它们在目的、范围和实现方式上有所不同。本文将详细探讨Rails中单元测试和功能测试的区别,并提供实际代码示例。 单元测试和功能测试是Rails测试策略的两个重要组成...

    linux-在Ubuntu服务器上安装Rails生产环境的脚本

    在Ubuntu服务器上搭建Rails生产环境是一项关键的任务,它涉及到多个步骤和组件的配置。Rails是Ruby的一个框架,用于构建Web应用程序。在这个过程中,我们将主要关注以下几个核心知识点: 1. **Ruby 安装**:首先,...

    Rails2.2.2之windows环境搭建

    首先,要搭建Rails环境,你需要安装以下基础组件: 1. **Ruby**:Ruby是Rails的编程语言基础,确保下载适合Windows的最新稳定版Ruby,并且包括DevKit,这是一个用于编译C扩展的工具包。 2. **Ruby Gems**:Ruby的...

    Ruby on Rails入门例子

    Rails的"约定优于配置"(Convention over Configuration, CoC)原则和"DRY"(Don't Repeat Yourself)哲学,使得开发者能更专注于业务逻辑,而不是底层细节。同时,Rails社区的活跃度高,有大量的插件和 gems 可供...

    使用RSpec 测试Rails 程序.pdf

    3. **RSpec配置**:编辑`spec_helper.rb`来配置RSpec的行为和偏好,例如指定默认的测试环境、启用或禁用特定特性等。 4. **生成器**:使用`rails generate rspec:install`命令来初始化RSpec,并创建必要的目录结构和...

    Mac上rails环境的搭建

    本文将详细介绍如何在Mac系统上搭建一个完整的Rails开发环境,包括Ruby环境配置、Rails框架安装、MySQL数据库安装以及RubyMine集成开发环境的配置等关键步骤。 #### 二、Ruby环境配置 由于Mac系统自带Ruby环境,...

    Ruby on Rails环境搭建(基于WinXP & RadRails)

    在本教程中,我们将深入探讨如何在Windows XP操作系统上搭建...一旦环境配置完成,你就可以开始创建Web应用,体验Ruby on Rails带来的高效开发体验了。记住,持续学习和实践是成为熟练的Ruby on Rails开发者的关键。

    怎样在Ubuntu系统下配置Ruby On Rails开发环境.docx

    Ubuntu 下 Ruby On Rails 开发环境配置指南 在 Linux 操作系统中使用 Ruby On Rails 能够对 web 应用程序的维护和开发变得更加便利,让开发人员能更加专注于系统的逻辑结构。在使用前需先配置 Ruby On Rails 的开发...

    NetBeans Ruby and Rails IDE with JRuby 2009

    - **使用Autotest**:自动测试框架,可以实时监控文件变化并自动运行测试。 - **调试应用**:使用调试工具逐步执行代码,检查变量值等。 - **运行调试器**:启动调试会话来深入分析程序的行为。 - **使用断点**:在...

    搭建Ruby on Rails开发环境

    下载完成后,通过一系列命令解压、配置、编译和安装Ruby。当`ruby -v`命令显示出Ruby的版本时,说明安装成功。 接着,需要安装RubyGems。同样,通过wget下载gem的tar.gz文件,解压后按照指定步骤安装。安装完成后,...

    ruby on rails与MySql的环境配置——支持rails 2.3.5以上版本

    《Ruby on Rails与MySQL环境配置详解》 在开发基于Web的应用程序时,Ruby on Rails(简称Rails)框架和MySQL数据库的结合是常见的选择。本文将详细介绍如何在Windows环境下配置Ruby on Rails以支持Rails 2.3.5及...

    ruby on rails环境搭建学习笔记;passenger+nginx环境配置

    #### 二、Passenger+Nginx 环境配置 Passenger 是一款用于部署 Ruby 应用程序的 Web 服务器,它与 Nginx 结合使用时能提供高性能的服务。 ##### 安装 Passenger 1. **安装 Passenger:** ```sh gem install ...

    教学级Ruby On Rails 手动安装.pdf

    尽管Ruby on Rails提供了丰富的功能和高效的工作流,但初次安装配置可能会让新手感到困惑。通过上述步骤,您可以手动完成Ruby on Rails的环境搭建,从而开启Rails开发之旅。记住,良好的开发环境是项目成功的基石,...

Global site tag (gtag.js) - Google Analytics