我正在学习rails测试。在听到许多不同的消息来源称赞guard后,我计划安装它来玩它。然而,我在我的应用程序上安装它时遇到了问题。
我正在遵循guard rspec github上显示的步骤。下面是我所做的:
gem 'guard-rspec', require: false #on gemfile development group
$ bundle install
$ bundle exec guard init rspec我可以毫不费力地运行bundle install,但每当我运行guard init rails rspec时,它都会显示以下错误:
iggy$ guard init rails rspec
Expected string default value for '--listen-on'; got false (boolean)
22:19:09 - ERROR - Could not load 'guard/rails' or find class Guard::Rails
22:19:09 - ERROR - Error is: cannot load such file -- guard/rails
22:19:09 - ERROR - /Users/iggy/.rvm/gems/ruby-2.2.3/gems/guard-2.14.0/li...
...
/Users/iggy/.rvm/gems/ruby-2.2.3/gems/guard-2.14.0/lib/guard/dsl.rb:383:in `rescue in evaluate': Invalid Guardfile, original error is:
Could not load class: "Rails",
backtrace:
(dsl)> $GEM_PATH[0]/gems/guard-2.14.0/lib/guard/plugin_util.rb:57:in `initialize_plugin'
(dsl)> $GEM_PATH[0]/gems/guard-2.14.0/lib/guard/internals/plugins.rb:26:in `add'
...我不确定为什么它说它不能加载Rails类。我运行了gem install rails。仍然是完全相同的错误。
这是我的完整的gemfile:
source 'https://rubygems.org'
gem 'rails', '~> 5.0.0'
gem 'puma', '~> 3.0'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2'
gem 'jquery-rails'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'carrierwave', '>= 1.0.0.rc', '< 2.0'
gem 'fog'
gem 'figaro'
gem 'mini_magick'
gem 'devise'
gem 'searchkick'
group :development, :test do
gem 'byebug', platform: :mri
gem 'rspec-rails', '~> 3.5'
gem 'factory_girl_rails', '~> 4.7.0'
end
group :test do
gem 'faker', '~> 1.6.6'
gem 'capybara', '~> 2.10.2'
gem 'database_cleaner', '~> 1.5.3'
gem 'launchy', '~> 2.4.3'
gem 'selenium-webdriver', '~> 3.0.3'
end
group :development do
gem 'sqlite3'
gem 'web-console'
gem 'listen', '~> 3.0.5'
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
gem 'guard-rspec', '4.6.0', require: false
end
group :production do
gem 'rails_12factor'
gem 'pg'
end
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]guard-rspec的github表示:
Compatible with RSpec >2.99 & 3
Tested against Ruby 2.2.x, JRuby 9.0.5.0 and Rubinius.我确认我的ruby是>= 2.2,RSpec是v. 3+。
我需要修复什么才能在我的应用程序上运行防护?谢谢!
发布于 2016-12-09 10:00:20
guard init rails是不必要的。因为guard init xxx只是插件名称(guard-xxx)。
发布于 2016-12-09 11:16:30
找出哪里出了问题。我之前和两个不同的后卫一起打球:guard-rails和guard-rspec。显然,当我在gemfiles中有guard-rails时,我运行了guard init命令,它创建了一个Guardfile。
当我将guard-rails更改为guard-rspec并运行guard init rspec时,它不会自动覆盖旧的Guardfile,从而导致错误。我删除了旧的Guardfile,有了正确的保护:guard-rspec到我的gemfiles中,捆绑安装,并运行guard init rspec,它工作了!
给我(和其他人)的建议:
如果您遇到了类似的问题(创建了防护文件,但rails抱怨您没有正确的防护),请注意,Guardfile一旦生成,就不会被自动覆盖。如果你有不同的防护gem,请确保首先删除旧的防护文件,然后创建一个新的防护文件!
https://stackoverflow.com/questions/41031315
复制相似问题