【问题标题】:Rails 5 - Could not find generator 'rspec:install'Rails 5 - 找不到生成器'rspec:install'
【发布时间】:2016-09-17 01:54:41
【问题描述】:

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

group :development, :test do
  gem 'byebug', platform: :mri
  gem 'rspec-rails', '~> 3.5', '>= 3.5.2'
end

我跑了bundle install。然后gem就安装成功了。

然后我跑了:

rails generate rspec:install

但我收到一条错误消息:

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.

关于这个错误(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)

【问题讨论】:

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


    【解决方案1】:

    在我的情况下,spring gem 是一个问题。重启spring解决了这个问题。

    第一次运行bin/spring status。如果 spring 正在运行,你会得到类似的结果:

    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
    

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

    bin/spring stop
    

    然后重新开始:

    bin/spring server
    

    然后运行rails generate rspec:install,它应该可以工作了。

    您可能需要运行bundle update

    【讨论】:

    • 太棒了!这个答案最终向我指出了这样一个事实,即 Spring 服务器运行会阻止生成器(不仅仅是 Rspec)对 rails generate 命令可用。
    • 我遇到了这个问题,但是仅仅停止/重启 spring 是不够的,还需要在停止 spring 之后运行bundle update。然后生成器工作了。
    • @Sujimichi 根据您的评论更新了答案?
    • 我需要添加-d 在后台运行spring。 bin/spring server -d
    【解决方案2】:

    我今天遇到了同样的问题,结果我忘记在我的 Gemfile 中添加 rspec gem。

    在 Gemfile 中添加以下行解决了这个问题。

    gem "rspec-rails"

    需要为基础做同样的事情 (rails g foundation:install Y)

    gem '基础导轨'

    添加后运行bundle 以更新依赖项。

    无需重启spring。

    【讨论】:

    • 谢谢,这是最后一个解决方案,虽然它有效,yaaay yaaay Patel 先生!!
    • 乐于助人:)
    【解决方案3】:

    只是在@dhrubo_moy 的答案中添加一个变体......

    1. bin/spring stop
    2. bundle update
    3. rails generate rspec:install

    rspec:install 之前重新启动spring 对我不起作用。

    【讨论】:

      【解决方案4】:

      以上答案都不适合我。

      用下面替换 rspec gem 是我能找到的唯一解决方法。

      gem "rspec-core", :github => "rspec/rspec-core"
      gem "rspec-expectations", :github => "rspec/rspec-expectations"
      gem "rspec-mocks", :github => "rspec/rspec-mocks"
      gem "rspec-support", :github => "rspec/rspec-support"
      gem "rspec-rails", :github => "rspec/rspec-rails"
      

      我正在使用 ruby​​ 2.5.1 和 gem 'rails', '~> 5.0.7', '>= 5.0.7.2'

      【讨论】:

        【解决方案5】:

        就我而言,Rails 6.1.4.1、Ruby 2.7.4、VSCode IDE,我将 gem 依赖项添加到 Gemfile 为:-

        gem "rspec-rails"
        

        通过指定 RSpec 文档中提到的版本来消除问题:-

        gem "rspec-rails", '~> 4.0.2'
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-21
          • 2012-02-18
          • 2013-03-07
          • 1970-01-01
          • 1970-01-01
          • 2011-04-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多