2014-10-16 47 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

相關問題