Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 关于';循环要求';什么时候运行rspec_Ruby On Rails_Ruby On Rails 4_Rspec - Fatal编程技术网

Ruby on rails 关于';循环要求';什么时候运行rspec

Ruby on rails 关于';循环要求';什么时候运行rspec,ruby-on-rails,ruby-on-rails-4,rspec,Ruby On Rails,Ruby On Rails 4,Rspec,嗨,我在运行rspec时收到了很多警告,这让我非常恼火 如何修复它?因为我在rbenv下尝试了Ruby版本2.1.2,但根本不起作用 这是我的档案 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

嗨,我在运行rspec时收到了很多警告,这让我非常恼火

如何修复它?因为我在rbenv下尝试了Ruby版本
2.1.2
,但根本不起作用

这是我的档案

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...
%rspec(git)-[feature/w1测试视频模型]
无
/Users/jeff/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/bootstrap-sass-3.1.1/lib/bootstrap-sass/sass_functions.rb:20:警告:第一个参数不明确;用括号甚至空格
/Users/jeff/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/sass-3.2.19/lib/sass/version.rb:5:警告:正在加载,循环要求考虑有害-/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`'
from/Users/jeff/.rbenv/versions/2.0.0-p481/bin/rspec:23:in'load'
来自/Users/jeff/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0/exe/rspec:4:in`'
来自/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”
来自/Users/jeff/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0/lib/rspec。。。

这不是一个修复程序,但是从
文件中删除
--warnings
。rspec
会使警告“消失”

基本上,
--warnings
标志将ruby置于详细模式,这将为一系列事件打开警报。不幸的是,有很多代码(您可能正在使用)从未在启用警告的情况下进行过测试。这意味着你看到了一堆垃圾代码,而这些代码不是你的


在本例中,sass gem似乎有问题。

我也有同样的错误,并修复了它引用页面的问题

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


这些是rspec由于循环依赖关系发出的警告。这可能是不再正确的
require
语句的混合。(我相信从RSpec 3.0开始)

如果这是Rails应用程序:

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

  • 确保您的
    .rspec
    文件包含
    --需要“spec\u helper”
    ,并将其签入源代码管理
  • 从任何等级库文件的顶部删除任何
    需要的'spec\u helper'

  • 这将确保仅加载一次依赖项,无论您是对特定文件还是对所有文件运行rspec。

    您的
    spec\u helper.rb
    文件中有什么内容?我想隐藏我使用的gem中的警告,因此只有我自己的代码中的警告才可见。你知道这是否可行吗?删除警告并不能解决这些警告,只会使它们无法显示。这是一个糟糕的建议。隐藏警告不是一个“修复”。