【问题标题】:Couldn't find 'rspec' generator找不到“rspec”生成器
【发布时间】:2012-11-17 09:46:00
【问题描述】:

在将 RSpec 作为插件安装后,我正在尝试将其安装为 gem。对于标题为 rspec 和 rspec-rails gems 的部分,我已经继续并按照此处 http://github.com/dchelimsky/rspec-rails/wikis 的说明进行操作。当我运行ruby script/generate rspec 时,我收到错误Couldn't find 'rspec' generator。只有插件有效吗?如果是这样,为什么他们甚至为 rspec 和 rspec-rails 提供 gem?我正在运行 Rails 2.1.2 的冻结副本,我使用的 rpsec 和 rspec-rails 版本是今天(2008 年 11 月 7 日)1.1.11 的最新版本。

编辑 2008 年 11 月 12 日 我安装了 rspec 和 rspec-rails gems。我已将 gem 解压缩到 vender/gems 文件夹中。两者都是 1.1.11 版本。

【问题讨论】:

  • 请详细说明您的设置和所做的工作。

标签: ruby-on-rails rspec


【解决方案1】:

由于 RSpec 已成为 Rails 中的默认测试框架,您不再需要通过 rspec 生成器创建规范文档:

Rails 2 RSpec 生成器

 rails generate rspec_model mymodel

Rails 3 RSpec 生成器

使用 RSpec 作为默认测试框架,只需使用 Rails 自己的生成器。这将构建您需要的所有文件,包括 RSpec 测试。例如

  $rails generate model mymodel
      invoke  active_record
      create    db/migrate/20110531144454_create_mymodels.rb
      create    app/models/mymodel.rb
      invoke    rspec
      create    spec/models/mymodel_spec.rb

【讨论】:

  • 所以在3中,'rspec_model'改为'model'。谢谢指点!
  • 其实rspec_model已经变成rspec:model了。您可以使用rails generate查看所有其他生成器
【解决方案2】:

您是否同时安装了 rspec 和 rspec-rails gem?

script/generate rspec

需要安装 rspec-rails gem。

【讨论】:

  • 这为我解决了问题。谢谢!
【解决方案3】:

适用于 Rails 3 和 rspec 2+ 您必须确保在 Gemfile 中包含“rspec”和 rspec-rails 运行捆绑安装 然后运行 ​​rails g rspec:install

【讨论】:

  • 这对我来说适用于 rails 4 和 rspec 2.13,我缺少 rspec-rails。
【解决方案4】:

如果你使用的是rails 2.3你需要使用

ruby 脚本/插件安装 git://github.com/dchelimsky/rspec-rails.git -r 'refs/tags/1.3.3'

然后

ruby 脚本/生成 rspec

【讨论】:

    【解决方案5】:

    是否应该有一个“rspec”生成器?我只使用了以下内容:

    script/generate rspec_model mymodel
    script/generate rspec_controller mycontroller
    

    【讨论】:

    • 我正在使用脚本/生成 rspec,因为这是它在网站上的说明中所说的下一步。我无法使用此新版本运行此脚本或我的任何 rspec 测试。
    • 是的,rspec 生成器设置了一些样板文件,例如 spec_helper.rb。
    • 在rails 3中,“rails generate controller mycontroller”
    • 谢谢!在运行脚本/生成 rspec 模型 mymodel 时,我一直没有生成任何内容。
    【解决方案6】:

    我以前遇到过这个问题,归结为我没有使用我正在使用的 Rails 版本的 RSpec 版本。 IIRC 它是 2.1 Rails,更新后的 RSpec 还没有作为 gem 发布。事实上,1.1.11 是我拥有的 gem,它将是最新可用的(忽略 github gem),所以我很确定这正是我的问题所在。

    我已经习惯于将主 rspec 的负责人与我碰巧使用的任何版本的 Rails 一起使用,这对我来说似乎很稳定(并且不会破坏生产中的东西,除非测试以某种方式破坏了误报)。

    我用 git 用子模块来做,例如:

    git submodule add git://github.com/dchelimsky/rspec.git vendor/plugins/rspec
    git submodule add git://github.com/dchelimsky/rspec-rails.git vendor/plugins/rspec_on_rails
    

    【讨论】:

      【解决方案7】:

      如果有人现在想知道 Rails 3, 这似乎对我有用: http://github.com/rspec/rspec-rails/blob/29817932b99fc45adaa93c3f75d503c69aafcaef/README.markdown

      【讨论】:

      • 如果您正在阅读这些 rails 2.x 说明,并尝试翻译成 rails 3.x,您还想知道,例如“script/generate rspec_controller Users new”已成为“rails generate controller Users new”(“控制器”生成器已被训练为执行 RSpec,如果您已安装)。
      【解决方案8】:

      我使用的是 Rails 2.3.9。我开始尝试使用 gem(s),但无法显示 rspec 的生成器。然后我使用https://github.com/dchelimsky/rspec/wiki/rails 上的说明安装了插件,就成功了。

      【讨论】:

        【解决方案9】:

        在 Fedora 9 (OLPC) 上我做到了:

        $ sudo gem install rspec
        
        $ sudo gem install rspec-rails 
        

        那些把我带到了我可以奔跑的地方

        $ ruby script/generate rspec
        

        这对我有用,而 git 指令不起作用。

        【讨论】:

          【解决方案10】:

          如果您使用的是 1.0.8 版捆绑程序,您应该 $ gem update bundler 升级到更新的 1.0.9 版。

          我有同样的症状,更新捆绑器帮助了我。 现在$ rails g 正在使用 Gemfile 中定义的 gem。我也将我的宝石分组如下:

          source 'http://rubygems.org'
          
          gem 'rails', '3.0.3'
          gem 'sqlite3-ruby', :require => 'sqlite3'
          
          group :test, :development do
            gem 'capybara', '0.4.1.1'
            gem 'database_cleaner'
            gem 'cucumber-rails'
            gem 'rspec-rails', '~> 2.4'
            gem 'launchy'
          end
          

          (请注意,测试 gem 也在 :development 组中。)

          祝你有美好的一天:)

          卢卡斯

          【讨论】:

            【解决方案11】:

            如果您输入script/rails generate,您实际看到的唯一RSpec 生成器是rspec:install。那是因为 RSpec 注册了 Rails 作为测试框架,所以每当你生成模型、控制器等应用程序组件时,都会生成 RSpec 规范而不是 Test::Unit 测试。

            请注意,生成器可以帮助您入门,但它们不能替代您编写自己的示例,并且它们只能保证在默认情况下开箱即用(ActiveRecord & Webrat)。

            https://github.com/rspec/rspec-rails

            【讨论】:

              【解决方案12】:

              您可能需要运行 bundle exec :

              bundle exec rails g rspec:install
              

              【讨论】:

                【解决方案13】:

                你需要这样做

                sudo gem install cucumber-rails
                

                【讨论】:

                  猜你喜欢
                  • 2023-03-22
                  • 1970-01-01
                  • 2011-04-25
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-04-06
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多