2014-10-16 48 views
1

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

这里是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: '[email protected]:rchampourlier/guard-shotgun.git', branch: 'master' 
    gem 'blam' 
end 

回答

1

宝石集团

捆扎机默认情况下安装的一切。你可能需要的是这样的:

$ bundle install --without test development 

为您的生产服务器,除了测试&开发组此安装的一切。

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

西纳特拉环境

既然你提到西纳特拉明确你也许也有意西纳特拉配置块

# 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

相关问题