本篇简要介绍使用JRuby + RSpec + Rails-Carrot + Celerity 进行rails3项目的集成测试。
1. Install jruby
> rvm install jruby
2. Rails Gemfile
if defined?(JRUBY_VERSION)
gem 'activerecord-jdbc-adapter', '1.0.2'
gem 'jdbc-mysql', :require => false
gem 'celerity'
gem 'rails-carrot', :require => 'carrot'
else
gem 'mysql2'
group :celerity do # celerity 是项目测试环境,根据喜好自己修改
gem 'mysql'
end
end
|
Other test gems
group :development, :test do
gem "database_cleaner"
gem 'webrat'
gem "rspec", ">= 2.0.0"
gem "rspec-rails", ">= 2.0.0"
end
|
3. Add Rails Environment
database.yml
celerity:
adapter: mysql
encoding: utf8
reconnect: false
database: AC_rails3_celerity
pool: 5
username: root
password:
socket: /var/run/mysqld/mysqld.sock
#{Rails.root}/config/environments/celerity.rb
ACRails3::Application.configure do
config.cache_classes = true
config.whiny_nils = true
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
config.action_dispatch.show_exceptions = false
config.action_mailer.delivery_method = :test
config.active_support.deprecation = :stderr
end
4. Install Gems
>rvm jruby
>bundle install
5. RSpec helper
Create a RSpec helper and you can use it to test with Celerity.
#{Rails.root}/spec/Celerity_helper
require 'database_cleaner'
require 'celerity'
require 'carrot'
ENV["RAILS_ENV"] = 'celerity'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
Carrot.configure do |config|
config.run_server = true
config.external_ruby = true
config.rails_command = "~/.rvm/gems/ruby-1.9.2-p0/bin/rails s -e celerity -p 3001"
config.project_path = "#{Rails.root}"
config.server_port = 3001
# config.server_debug = true
end
Carrot.register_driver(Celerity::Browser.new)
RSpec.configure do |config|
DatabaseCleaner.strategy = :truncation
config.before :each do
@browser = Carrot.driver
DatabaseCleaner.clean
end
config.after :all do
DatabaseCleaner.clean
end
config.use_transactional_fixtures = false
def url(path)
Carrot.url(path)
end
def login(browser, login, password)
browser.text_field(:name, 'login').value = login
browser.text_field(:name, 'password').value = password
browser.button(:name, 'commit').click
end
end
|
6. Example
#{Rails.root}/spec/requests/hello_spec.rb
require 'celerity_helper'
describe "QA" do
before do
#以下为业务数据,直接插入数据到数据库
@company = create_company
@user = create_company_admin(@company, {:login => "qaman", :email => "qaman@test.com"})
end
it "should redirect to main page" do
@browser.goto(url('/'))
login(@browser, @user.login, "123456")
@browser.text.should =~ /Projects of Shepherd/
end
end
|
7. Resource
分享到:
相关推荐
rails-angular-postgres-and-bootstrap-second-edition 英文原版
rails-documentation-2-0-2
rails-documentation-1-2-1.zip
rails-documentation-1-2-0-rc1.chm
Ajax-Rails-4-AJAX-modal-form-render-JS-response-as-table-row.zip,rails 4 ajax模式表单将js响应呈现为表行,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
ruby on rails的帮助文档,对学习和使用ror的朋友很有帮助
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
jquery-fileupload-rails, 用于 Rails的jQuery文件上传集成 Rails 文件上传jQuery-File-Plugin 是一个文件上传插件,由的Tschan 。 jQuery文件上传功能多文件选择。drag&拖放支持。进度栏和jQuery预览图像。 支持...
guardrails-engine-output-schema-validator --help Usage: guardrails-engine-output-schema-validator [options] Options: -V, --version output the version number -s, --stdin Read from stdin -f, --file...
minitest-rails, Rails的Minitest集成 minitestRails 5的Minitest集成 安装gem install minitest-rails这将安装以下宝石:minitest配置创建一个新的Rail
webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成 不再维护webpack-rails 不再被维护。 有关详细信息,请参阅 #90. web pack-railsweb pack 为你提供了将 web pack集成到现有的Ruby on Rails 应用程序中...
EmberSimpleAuth::Rails 资产管道的 ember-simple-auth 如果你想要一个新版本运行 $ rake update 并提交拉取请求 安装 将此行添加到应用程序的 Gemfile 中: gem 'ember_simple_auth-rails' 然后执行: $ ...
从 Assets Pipeline 到 Webpack,Rails 6 的前端方案们From assets pipeline to web pack,the R
2-94街机外星风格射击游戏源码On Rails Shooter Template 1.202-94街机外星风格射击游戏源码On Rails Shooter Template 1.202-94街机外星风格射击游戏源码On Rails Shooter Template 1.202-94街机外星风格射击游戏...
Rails的Clojurescript集成类似于webpack-rails
tinymce-rails-imageupload, 用于TinyMCE和 Rails的映像上传插件,带有资产管道 重要说明:这个版本正在改写为 TinyMCE 4. x,,目前还没有得到很好的测试。 使用你自己的风险,反馈欢迎。 对于稳定版本目标 TinyMCE ...
rails-hackernews-reddit-producthunt-clone, 黑客 news/reddit/social 链接分享网站 用 Rails 构建 Rails 上的 Reddit-Hackernews-ProductHunt克隆演示 这是一个 readme.md的Ruby on Rails 应用程序,模仿了 Hacker...
从头开始创建Rails API 学习目标 创建仅API的Rails构建 介绍 在最后几节课中,我们了解了如何轻松调整Rails的MVC结构来呈现JSON。 Rails足够灵活,能够响应不同的格式,并且可以立即使用。 但是,出于在JavaScript和...