我正在学习rails测试。在听到许多不同来源称赞后卫后,我打算安装它来玩它。但是,我在我的应用程序上安装它时遇到问题。
我按照guard rspec github中显示的步骤操作。这是我做的:
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
课程。我跑了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]
。仍然完全相同的错误。
这是我的完整宝石文件:
Compatible with RSpec >2.99 & 3
Tested against Ruby 2.2.x, JRuby 9.0.5.0 and Rubinius.
guard-rspec的github说:
{{1}}
我确认我的红宝石是&gt; = 2.2而RSpec是v.3 +。
我需要修复哪些内容才能在我的应用上保护?谢谢!
答案 0 :(得分:0)
guard init rails
是不必要的。因为guard init xxx
只是插件名称(guard-xxx
)。
答案 1 :(得分:0)
弄清楚错误是什么。我之前玩过两个不同的守卫:guard-rails
和guard-rspec
。显然我在我的gemfiles中有guard init
时运行guard-rails
命令并创建了一个Guardfile
。
当我将guard-rails
更改为guard-rspec
并运行guard init rspec
时,它不会自动覆盖旧Guardfile
,从而导致错误。我删除了旧的Guardfile
,将正确的后卫guard-rspec
放入我的gemfiles中,安装了捆绑包,然后运行guard init rspec
并且它有效!
为我(以及其他人)带走:
如果你遇到类似的问题(创建了护卫文件但是rails抱怨你没有合适的防护),请注意Guardfile
一旦生成,就不会被自动覆盖。如果你有不同的保护gem,请确保先删除旧的保护文件,然后创建一个新的保护文件!