Подтвердить что ты не робот

Слишком много предупреждений о "круговом требовании" при запуске rspec

Привет, я получил много предупреждений при запуске rspec, который слишком раздражает меня,

Как это исправить? потому что я пробовал версию Ruby 2.1.2 под rbenv, но она вообще не работала.

Здесь мой Gemfile

source 'https://rubygems.org'

gem 'bootstrap-sass'
gem 'coffee-rails'
gem 'rails'
gem 'haml-rails'
gem 'sass-rails'
gem 'uglifier'
gem 'jquery-rails'

group :development do
  gem 'sqlite3'
  gem 'pry'
  gem 'pry-nav'
  gem 'thin'
  gem "better_errors"
  gem "binding_of_caller"
end

group :test, :development do
    gem 'rspec-rails'
end

group :production do
  gem 'pg'
  gem 'rails_12factor'
end
gem 'hirb'
gem 'crack'
gem 'ap'
gem 'awesome_print'

# gem 'faker'

Предупреждение об опасности

% rspec                                                                                                                                             (git)-[feature/w1_test_the_video_model] 
nil
/Users/jeff/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/bootstrap-sass-3.1.1.1/lib/bootstrap-sass/sass_functions.rb:20: warning: ambiguous first argument; put parentheses or even spaces
/Users/jeff/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/sass-3.2.19/lib/sass/version.rb:5: warning: loading in progress, circular require considered harmful - /Users/jeff/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/sass-3.2.19/lib/sass.rb
    from /Users/jeff/.rbenv/versions/2.0.0-p481/bin/rspec:23:in `<main>'
    from /Users/jeff/.rbenv/versions/2.0.0-p481/bin/rspec:23:in `load'
    from /Users/jeff/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0/exe/rspec:4:in `<top (required)>'
    from /Users/jeff/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0/lib/rspec/core/runner.rb:38:in `invoke'
    from /Users/jeff/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0/lib/rspec...
4b9b3361

Ответ 2

Это не исправление, но удаление --warnings из вашего файла .rspec заставляет предупреждения "уходить".

В принципе, флаг --warnings помещает ruby ​​в подробный режим, который включает предупреждения о связке синтаксических проблем, которые потенциально могут вас укусить позже. К сожалению, там много кода (который вы, вероятно, используете), который никогда не тестировался с включенными предупреждениями. Это означает, что вы видите кучу хлама для кода, который не принадлежит вам.

В этом случае, похоже, что у sass gem есть проблемы.

Ответ 3

Это предупреждения, выдаваемые rspec из-за циклической зависимости. Вероятно, это сочетание операторов require, которые больше не верны. (Я считаю, что RSpec 3.0.)

Если это приложение Rails:

  • Если ваш проект настолько стар, что у вас нет rails_helper.rb, вы должны использовать rails g rspec:install, чтобы установить это. rails_helper.rb требует spec_helper, и он содержит вещи, специфичные для Rails.
  • Убедитесь, что ваш .rspec файл содержит --require 'rails_helper' и что он установлен в исходный элемент управления.
  • Удалите все require 'spec_helper' или require 'rails_helper' из верхней части любых файлов спецификаций.

Если это не приложение Rails:

  • Убедитесь, что ваш .rspec файл содержит --require 'spec_helper' и что он установлен в исходный элемент управления.
  • Удалите все require 'spec_helper' из верхней части любых файлов спецификаций.

Это гарантирует, что зависимости загружаются только один раз, независимо от того, запускаете ли вы rspec в определенном файле или для всех них.