Por que meu aplicativo Rails não consegue encontrar as jóias que são empacotados com ele?
-
11-09-2019 - |
Pergunta
Eu tenho um app Rails fazendo uso de pepino e RSpec. Nós estamos armazenando as pedras preciosas sob vendor / gems e tentar obter o edifício aplicativo (execução de testes) em um servidor de CI.
Quando tento executar nossos testes Estou recebendo o seguinte erro:
Missing these required gems:
cucumber >= 0.3.11
rspec-rails >= 1.2.6
Quando eu executo RAILS_ENV=test rake gems
recebo a seguinte:
- [F] activerecord-oracle-adapter
- [R] activerecord >= 1.15.5.7843
- [F] thoughtbot-factory_girl = 1.2.0
- [F] cucumber >= 0.3.11
- [ ] term-ansicolor >= 1.0.3
- [ ] treetop >= 1.2.6
- [ ] diff-lcs >= 1.1.2
- [I] builder >= 2.1.2
- [F] webrat >= 0.4.4
- [I] nokogiri >= 1.2.0
- [F] rspec >= 1.2.6
- [F] rspec-rails >= 1.2.6
- [F] rspec >= 1.2.7
- [ ] rack >= 0.4.0
- [F] thoughtbot-shoulda >= 2.10.2
I = Installed
F = Frozen
R = Framework (loaded before rails starts)
Faça o espaço em branco vazio [] 's significa que a jóia está faltando?
config / environments / test.rb contém o seguinte:
config.gem "cucumber", :lib => false, :version => ">=0.3.11" unless File.direct
ory?(File.join(Rails.root, 'vendor/plugins/cucumber'))
config.gem "webrat", :lib => false, :version => ">=0.4.4" unless File.direct
ory?(File.join(Rails.root, 'vendor/plugins/webrat'))
config.gem "rspec", :lib => false, :version => ">=1.2.6" unless File.direct
ory?(File.join(Rails.root, 'vendor/plugins/rspec'))
config.gem "rspec-rails", :lib => "spec/rails", :version => ">=1.2.6" unless File.direct
ory?(File.join(Rails.root, 'vendor/plugins/rspec-rails'))
config.gem "thoughtbot-shoulda", :lib => false, :version => ">=2.10.2" unless File.direct
ory?(File.join(Rails.root, 'vendor/plugins/shoulda'))
Assim, tudo parece em ordem, mas ainda se recusa a executar.
Am I faltando alguma coisa óbvia?
Solução
Parece que você tem cucumber
, rspec
e rspec-rails
congelado (descompactado) em seu diretório vendor/gems
mas você está faltando dependências para cucumber
e rspec-rails
. Como o comentário sobre a questão diz, []
indica que está faltando.
Gostaria de começar de novo:
rm -rf vendor/gems/cucumber
rm -rf vendor/gems/rspec-rails
rm -rf vendor/gems/rspec
Em seguida, instale as gemas localmente:
gem install rspec rspec-rails cucumber
Neste ponto, você deve ser capaz de testar o aplicativo com sucesso.
Finalmente, descompactar, em seguida, em seu dir vendor/gems
se desejado:
RAILS_ENV=test rake gems:unpack:dependencies GEM=rspec-rails
RAILS_ENV=test rake gems:unpack:dependencies GEM=cucumber
ou, em alternativa:
RAILS_ENV=test rake gems:unpack:dependencies
para tudo basta descompactar para o ambiente de teste em vendor/gems
. Isso descompactar o gem nokogiri
atualmente instalada localmente, mas não congelados para o aplicativo.