#ruby-on-rails #ruby #ruby-on-rails-3 #rubygems #bundler
#ruby-on-rails #ruby #ruby-on-rails-3 #rubygems #bundler
Вопрос:
У меня есть приложение, в котором мои тесты проходят для rails 3.0.6. Я определил коммит git, где единственное изменение заключается в том, что я меняю версию rails в моем Gemfile с 3.0.6 на 3.0.8 и запускаю обновление пакета. После этого мои тесты завершаются неудачей … достаточно справедливо. Однако, когда я пытаюсь понизить версию до 3.0.6, мои тесты ПО-ПРЕЖНЕМУ завершаются неудачей .. предполагая, что что-то не работает с понижением. Я пытаюсь выполнить следующие действия
change version in Gemfile from 3.0.8 to 3.0.8
run bundle update
rm Gemfile.lock
rm -rf vendor/bundle/*
bundle install
И после этого мои тесты все еще терпят неудачу. Я в растерянности .. я что-то упускаю в процессе понижения?
Редактировать:
У меня было ошибочное предположение, что больше ничего не изменилось, когда я изменил версию rails в моем Gemfile. Запустив
bundle update
мой Gemfile.в итоге lock обновил некоторые из моих драгоценных камней до их более новых версий на github, и эти новые коммиты нарушили работу. Когда я ссылаюсь на рабочий коммит в моем Gemfile, все снова работает
gem "carrierwave", :git => 'https://github.com/jnicklas/carrierwave.git', :ref => "0d2e9ee8706074059cb78f2f85232caf17327952"
Комментарии:
1. Как вы запускаете тесты? Попробуйте выполнить «rake bundle exec ….» вместо просто «rake ….»
2. да, я использую пакет exec rspec spec/models / mymodel.rb
3. У вас есть ваш Gemfile. в git установлена блокировка? Если да, то изменились ли какие-либо другие драгоценные камни при обновлении Rails?
4. Вы правы, Анобл.. вот что произошло..
5. Я предлагаю вам использовать
bundle update rails
при обновлении rails и изменять ваш Gemfile. заблокируйте, чтобы увидеть, что еще изменилось.
Ответ №1:
взгляните на RVM (расшифровывается как ruby version manager)
и в этой статье рассказывается все о том, как управлять вашими драгоценными камнями (например: для каждого проекта отдельный набор драгоценных камней)
Комментарии:
1. 1 ( 1000!) для RVM. Также @Noli, в ситуации, которую вы описываете, часто лучше удалить ваш Gemfile. заблокируйте и сделайте
bundle install
, чтобы создать ее заново с нуля.2. Спасибо, но я не вижу, как RVM помогает в этом случае (и я все равно использую файл projct .rvmrc здесь). Моя проблема заключалась в том, что gem изменился, потому что я ссылался на ЗАГОЛОВОК на github в моем Gemfile, в отличие от конкретного коммита.
3. если вы на 100% уверены, что ваш код работает (так что это действительно ошибка rails), просто начните с нуля, создайте новый git-клон проекта, измените Gemfile и убедитесь, что у вас есть чистый gemset (форма rvm, путем создания clean .rvmrc с содержимым rvm -create используйте default@PROJECTNAME > /dev / null