Rails 5 - 找不到生成器'rspec:install'

dhr*_*moy 6 ruby rspec ruby-on-rails ruby-on-rails-5

在我的rails 5.0.0应用程序中,我已将以下内容添加到我的Gemfile中:

group :development, :test do
  gem 'byebug', platform: :mri
  gem 'rspec-rails', '~> 3.5', '>= 3.5.2'
end
Run Code Online (Sandbox Code Playgroud)

我跑bundle install.然后gem成功安装.

然后我跑了以下:

rails generate rspec:install
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误说:

Running via Spring preloader in process 8893
Could not find generator 'rspec:install'. Maybe you meant 'css:assets', 'assets' or 'scaffold'
Run `rails generate --help` for more options.
Run Code Online (Sandbox Code Playgroud)

在这个错误(Could not find generator 'rspec:install')上发布了大量其他问题,但它们都没有为我工作,看起来我有一个不同的问题.

包括它需要的,这是我的bundle show输出:

Gems included by the bundle:
  * actioncable (5.0.0.1)
  * actionmailer (5.0.0.1)
  * actionpack (5.0.0.1)
  * actionview (5.0.0.1)
  * activejob (5.0.0.1)
  * activemodel (5.0.0.1)
  * activerecord (5.0.0.1)
  * activesupport (5.0.0.1)
  * arel (7.1.2)
  * builder (3.2.2)
  * bundler (1.12.5)
  * byebug (9.0.5)
  * coffee-rails (4.2.1)
  * coffee-script (2.4.1)
  * coffee-script-source (1.10.0)
  * concurrent-ruby (1.0.2)
  * debug_inspector (0.0.2)
  * diff-lcs (1.2.5)
  * erubis (2.7.0)
  * execjs (2.7.0)
  * ffi (1.9.14)
  * globalid (0.3.7)
  * i18n (0.7.0)
  * jbuilder (2.6.0)
  * jquery-rails (4.2.1)
  * listen (3.0.8)
  * loofah (2.0.3)
  * mail (2.6.4)
  * method_source (0.8.2)
  * mime-types (3.1)
  * mime-types-data (3.2016.0521)
  * mini_portile2 (2.1.0)
  * minitest (5.9.0)
  * multi_json (1.12.1)
  * nio4r (1.2.1)
  * nokogiri (1.6.8)
  * pkg-config (1.1.7)
  * puma (3.6.0)
  * rack (2.0.1)
  * rack-test (0.6.3)
  * rails (5.0.0.1)
  * rails-dom-testing (2.0.1)
  * rails-html-sanitizer (1.0.3)
  * railties (5.0.0.1)
  * rake (11.2.2)
  * rb-fsevent (0.9.7)
  * rb-inotify (0.9.7)
  * rspec-core (3.5.3)
  * rspec-expectations (3.5.0)
  * rspec-mocks (3.5.0)
  * rspec-rails (3.5.2)
  * rspec-support (3.5.0)
  * sass (3.4.22)
  * sass-rails (5.0.6)
  * spring (1.7.2)
  * spring-watcher-listen (2.0.0)
  * sprockets (3.7.0)
  * sprockets-rails (3.2.0)
  * sqlite3 (1.3.11)
  * thor (0.19.1)
  * thread_safe (0.3.5)
  * tilt (2.0.5)
  * turbolinks (5.0.1)
  * turbolinks-source (5.0.0)
  * tzinfo (1.2.2)
  * uglifier (3.0.2)
  * web-console (3.3.1)
  * websocket-driver (0.6.4)
  * websocket-extensions (0.1.2)
Run Code Online (Sandbox Code Playgroud)

dhr*_*moy 23

spring在我的案例中证明了它与gem 的问题.重启弹簧解决了这个问题.

第一次运行bin/spring status.如果弹簧正在运行,你会得到类似的东西:

Spring is running:

    8774 spring server | chessboard | started 14 mins ago   
    8808 spring app    | chessboard 6.52.08 PM | started 12 mins ago | development mode
Run Code Online (Sandbox Code Playgroud)

这意味着您必须通过运行来停止弹簧:

bin/spring stop
Run Code Online (Sandbox Code Playgroud)

然后再次启动它:

bin/spring server
Run Code Online (Sandbox Code Playgroud)

然后运行rails generate rspec:install它应该工作.

您可能需要运行bundle update.

  • 大!这个答案最终指出Spring运行Spring服务器阻止生成器(不仅仅是Rspec)可用于`rails generate`命令. (2认同)