내 레일 앱이 왜 포장 된 보석을 찾을 수 없습니까?
-
11-09-2019 - |
문제
오이와 RSPEC를 사용하는 Rails 앱이 있습니다. 우리는 보석을 공급 업체/보석 아래에 저장하고 CI 서버에서 앱 빌딩 (실행 중)을 얻으려고 노력하고 있습니다.
테스트를 실행하려고하면 다음 오류가 발생합니다.
Missing these required gems:
cucumber >= 0.3.11
rspec-rails >= 1.2.6
내가 달릴 때 RAILS_ENV=test rake gems
나는 다음을 얻는다 :
- [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)
빈 빈 []의 보석이 보석이 빠졌다는 것을 의미합니까?
구성/환경/test.rb는 다음을 포함합니다.
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'))
따라서 모든 것이 순서대로 보이지만 여전히 실행을 거부합니다.
내가 분명한 것을 놓치고 있습니까?
해결책
당신이 가진 것 같습니다 cucumber
, rspec
, 그리고 rspec-rails
당신의 냉동 (포장되지 않은) vendor/gems
디렉토리이지만 의존성이 누락되었습니다 cucumber
그리고 rspec-rails
. 질문에 대한 의견이 말했듯이 []
누락되었음을 나타냅니다.
나는 다시 시작할 것이다 :
rm -rf vendor/gems/cucumber
rm -rf vendor/gems/rspec-rails
rm -rf vendor/gems/rspec
그런 다음 보석을 로컬로 설치하십시오.
gem install rspec rspec-rails cucumber
이 시점에서 앱을 성공적으로 테스트 할 수 있어야합니다.
마지막으로 포장을 풀어주십시오 vendor/gems
원하는 경우 :
RAILS_ENV=test rake gems:unpack:dependencies GEM=rspec-rails
RAILS_ENV=test rake gems:unpack:dependencies GEM=cucumber
또는 대안으로 :
RAILS_ENV=test rake gems:unpack:dependencies
테스트 환경을위한 모든 것을 풀려고합니다 vendor/gems
. 이것은 포장을 풀 것입니다 nokogiri
보석은 현재 로컬로 설치했지만 앱에 동결되지 않았습니다.
제휴하지 않습니다 StackOverflow