如何在开发和测试之间切换我的sinatra服务器?

时间:2014-10-16 20:37:45

标签: testing sinatra

我有一个sinatra服务器,根据gemfile,有不同的宝石组。具体而言,有应用程序组,测试组和开发组。如何在这三个组之间切换我的应用程序?具体来说,我想在测试模式下运行我的服务器,所以我可以做TDD。

这是gemfile。

source 'https://rubygems.org'
ruby '2.0.0'

gem 'sinatra'
gem 'sinatra-contrib', require: %w(sinatra/config_file)
gem 'thin'
gem 'slim'
gem 'sinatra-assetpack'
gem 'zurb-foundation'
gem 'compass'

group :application do
  # Here should be all the specifics for the application
end

group :test do
  gem 'rspec'
  gem 'coveralls'
  gem 'capybara'
  gem 'rubocop'
end

group :development do
  gem 'rake'
  gem 'guard', '2.2.3'
  gem 'guard-rspec'
  gem 'guard-rubocop'
  gem 'guard-livereload'
  gem 'guard-shotgun', git: 'git@github.com:rchampourlier/guard-shotgun.git', branch: 'master'
  gem 'blam'
end

1 个答案:

答案 0 :(得分:1)

宝石组

Bundler默认安装一切。你可能想要的是这样的:

$ bundle install --without test development

对于您的高效服务器,这将安装除测试和放大器之外的所有内容。发展组。

来源:http://bundler.io/v1.3/groups.html

Sinatra环境

既然你提到了sinatra,你可能也对sinatra配置块感兴趣

# run only in development environment
configure :development do
  use Rack::Session::Pool, :key => '', :expire_after => 60 * 10
end

# run only in test environment
configure :test do
  use Rack::Session::Pool, :key => 'session', :expire_after => 60 * 60
end

# run everytime
configure do
  MongoMapper.database = 'food'
  User.ensure_index(:username)
  Product.ensure_index(:rnd)
end

您可以使用RACK_ENV设置不同的环境。

示例:

RACK_ENV=test ruby mytest.rb

来源:http://www.sinatrarb.com/configuration.html#built-in-settings