Cetriolo e WebRat in Selenio modalità:Non è possibile avviare mongrel_rails quando si utilizza gemma bundle

StackOverflow https://stackoverflow.com/questions/2360683

Domanda

Sto usando gemma bundler (v. 0.9.6) e Guide 2.3.5, rubygems 1.3.6 e ruby 1.8.7 (Su Snow Leopard).Il mio Gemfile assomiglia a questo:

source :rubyforge
source "http://gems.github.com"

gem "rails", "2.3.5"
gem "ruby-debug"
gem "activemerchant", :require => 'active_merchant'
gem "hpricot"
gem "nokogiri"
gem "state_machine"
gem "fastercsv"
gem "yubikey"
gem "httparty"
gem "ruby-openid"
gem "mongrel" 

group :development do 
  gem 'mongrel'
end

#teste
group :test do
  gem 'rspec'  
  gem 'rspec-rails'
  gem 'cucumber' 
  gem 'cucumber-rails'
  gem "mechanize"
  gem 'notahat-machinist', :require => 'machinist'
  gem 'faker'
  gem 'webrat'
  gem 'selenium-client'
  gem 'database_cleaner'
  gem 'fakeweb'
  gem 'mongrel' #Selenium needs this
end

Finora tutto bene.Sto usando bundler con successo per un paio di settimane già.Tuttavia, ho iniziato a usare il Cetriolo e WebRat in Selenio modalità per testare alcuni ajaxy caratteristiche del sito, e ogni volta che sono stato in esecuzione la funzione, WebRat mi diceva che le Guide server è stato avviato, ma ho sempre avuto un XHR_ERROR, dove il Selenio non riusciva a trovare l'URL. Beh, è successo che il server non è stato avviato.

Allora, ho aperto il webrat/lib/webrat/selenio/application_servers/rails.rb file e mettere un debugger istruzione nel metodo start.Correva la funzione di nuovo, quando il debugger attivato, ho stampato il ritorno del start_command def, che era:

mongrel_rails start -d --chdir='/Users/fullofcaffeine/Projetos/myproject' --port=3001 --environment=test --pid /Users/fullofcaffeine/Projetos/myproject/tmp/pids/mongrel_selenium.pid 

Ho copiato e incollato nella console, rimossi i -s e & dalla fine, e qui è il risultato che ho ottenuto:

** Rails loaded.
** Loading any Rails specific GemPlugins
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require': no such file to load -- /Users/fullofcaffeine/.bundle/ruby/1.8/gems/mongrel-1.1.5/lib/mongrel/init.rb (MissingSourceFile)
 from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'
 from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:521:in `new_constants_in'
 from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'
 from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/gem_plugin-0.2.3/lib/gem_plugin.rb:134:in `load'
 from /Library/Ruby/Site/1.8/rubygems/source_index.rb:241:in `each'
 from /Library/Ruby/Site/1.8/rubygems/source_index.rb:241:in `each'
 from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/gem_plugin-0.2.3/lib/gem_plugin.rb:112:in `load'
 from /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:231:in `load_plugins'
 from /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:117:in `cloaker_'
 from /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:149:in `call'
 from /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:149:in `listener'
 from /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:99:in `cloaker_'
 from /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:50:in `call'
 from /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:50:in `initialize'
 from /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `new'
 from /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `run'
 from /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/command.rb:212:in `run'
 from /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
 from /usr/bin/mongrel_rails:19:in `load'
 from /usr/bin/mongrel_rails:19

Controllare il percorso che si sta tentando di caricare cagnaccio da:"~/.bundle/...", ma il bastardo è installato come sistema di gemma.Bundle gestisce il caricamento del sistema di gemme multa per in un altro contesto, ma in questo particolare caso, non ho idea del perché non riesce :(.

Ho provato a lanciare "bundle install" di nuovo, e mi dice sempre:

L'installazione di meticci (1.1.5) dal sistema gemme

Ho provato a disinstallare bastardo dal sistema provare a fare il pacchetto per installare su ~/.bundle (questa sembra l'origine dell'errore, dal momento che bastardo è cercato in questo percorso mi avvio mongrel_rails come sopra), ma io non riuscivo a farlo.

gem uninstall mongrel
ERROR:  While executing gem ... (Gem::InstallError)
    cannot uninstall, check `gem list -d mongrel`

E quando ho eseguito il "gioiello list | grep bastardo", ottengo:

mongrel (1.1.5)

Strano.

Voglio solo essere in grado di eseguire il Cetriolo e WebRat + Selenio correttamente durante l'utilizzo di gemma bundler, ma questo mi sta facendo dadi.

Qualcuno potrebbe illuminarmi ?

È stato utile?

Soluzione

Bene, ho trovato una soluzione alternativa, tipo di pesce, ma funziona:

 cp  /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/ mongrel-1.1.5

Ora, se si tenta di:

mongrel_rails start --chdir='/Users/fullofcaffeine/Projetos/myproject' --port=3001 --environment=test --pid /Users/fullofcaffeine/Projetos/myproject/tmp/pids/mongrel_selenium.pid

Trova meticcio e avviare il server, quindi è possibile eseguire il Cetriolo funzione che utilizza il Selenio e funziona :)

Se qualcuno trova o sa nulla a proposito di questo problema, si prega di condividere, questo potrebbe essere un bug da qualche parte.

Altri suggerimenti

Ho avuto un problema simile, ma si è rivelato essere non corrispondenti versioni di gemme tra ciò che era in mio /Users/{account}/.gemme/ e ciò che è stato installato in /Library/Ruby/Gemme/ (installazione di default) o in /opt/local/lib/ruby/gemme/ (Mac Porte installare).Appena ho eliminato il /Users/{account}/.gemme/ tutto ha funzionato.

Ho riscontrato questo stesso problema, e ha trascorso un po ' cercando di eseguire il debug.Sembra che ci sia una sorta di interazione tra Meticci, GemPlugin e Insaccatrice.Possibili soluzioni sono:

  1. Fix GemPlugin per giocare bene con Bundler 0.9.
  2. Modificare Cagnaccio di non utilizzare più il GemPlugin.
  3. Modificare Webrat per il supporto di un web server diverso da Bastardo.

Dal momento che entrambi GemPlugin e Meticci sono alla ricerca di un po ' obsoleto e abbandonato in questi giorni, ho deciso di aggiungere un Sottile supporto per Webrat base questa patch.

È possibile trovare la nuova patch su github, o aggiungere quanto segue al file Gemfile:

gem 'webrat', :git => 'git://github.com/emk/webrat.git'

...e aggiornare le vostre caratteristiche/supporto/env.rb file di conseguenza:

Webrat.configure do |config|
  # Add this line.
  config.application_framework = :rails_thin

  # Your previous configuration here...
end

bundle exec mongrel_rails start ... ?

Il punto qui è quello di caricare le guide gemme dal bundle e non dal sistema gemenv.

Abbiamo un simile scenario che è stato scritto qui:Come arrivare cagnaccio di lavoro con bundler?

Provare a individuare le gemme directory corrente gemma eseguibile e eliminare eventuali residui dalla cache o specifiche cartelle, che dovrebbe funzionare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top