关于'循环的太多警告要求'什么时候运行rspec

时间:2014-06-06 01:39:18

标签: ruby-on-rails ruby-on-rails-4 rspec

嗨我在跑rspec时收到了很多警告,这让我太烦了,

如何解决?因为我在rbenv下尝试过Ruby版本2.1.2,但它根本没用。

这是我的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...

3 个答案:

答案 0 :(得分:38)

我遇到了同样的错误并修复了它的页面。

Guard with RSpec on Rails 4 giving a lot of warnings

  

默认情况下.rspec文件中的--warnings选项。删除该行,警告就会消失。

答案 1 :(得分:23)

这不是一个解决方法,但从--warnings文件中删除.rspec会使警告消失。#34;

基本上,--warnings标志将ruby置于详细模式,这会打开一堆syntax issues that could potentially bite you later的警报。不幸的是,那里有很多代码(你可能正在使用),它们从未在启用警告的情况下进行过测试。这意味着你已经看到了一堆垃圾,而不是你的代码。

在这种情况下,看起来sass gem有问题。

答案 2 :(得分:0)

由于循环依赖性,这些是rspec发出的警告。可能这是require语句的混合,不再正确。 (我相信自RSpec 3.0起。)

如果这是一个Rails应用程序:

  1. 如果您的项目太旧而您没有rails_helper.rb,则应使用rails g rspec:install进行设置。 rails_helper.rb需要spec_helper,并且它包含特定于Rails的内容。
  2. 确保您的.rspec文件包含--require 'rails_helper',并且已将其签入源代码管理中。
  3. 从任何规范文件的顶部删除所有require 'spec_helper'require 'rails_helper'
  4. 如果这不是Rails应用程序:

    1. 确保您的.rspec文件包含--require 'spec_helper',并且已将其签入源代码管理中。
    2. 从任何规范文件的顶部删除任何require 'spec_helper'
    3. 这将确保依赖项仅加载一次,无论您是在特定文件上运行rspec还是为所有文件运行。