Ruby on rails 不能';找不到';rspec';发电机

Ruby on rails 不能';找不到';rspec';发电机,ruby-on-rails,rspec,Ruby On Rails,Rspec,在将RSpec作为插件安装之后,我尝试将其作为gem安装。我已经按照标题为rspec和rspec-rails-gems的部分的说明进行了操作。当我运行ruby脚本/generate-rspec时,我发现错误找不到'rspec'生成器。只有插件才能工作吗?如果是这样的话,他们为什么还要为rspec和rspec-rails提供gems呢?我运行的是Rails 2.1.2的一个冻结版本,我使用的rpsec和rspec Rails版本是今天(2008年11月7日)1.1.11的最新版本 2008年11月

在将RSpec作为插件安装之后,我尝试将其作为gem安装。我已经按照标题为rspec和rspec-rails-gems的部分的说明进行了操作。当我运行
ruby脚本/generate-rspec
时,我发现错误
找不到'rspec'生成器
。只有插件才能工作吗?如果是这样的话,他们为什么还要为rspec和rspec-rails提供gems呢?我运行的是Rails 2.1.2的一个冻结版本,我使用的rpsec和rspec Rails版本是今天(2008年11月7日)1.1.11的最新版本

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

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

script/generate rspec_model mymodel
script/generate rspec_controller mycontroller

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

script/generate rspec

需要安装rspec-rails-gem。

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

我已经习惯于将master 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
在Fedora 9(OLPC)上,我做到了:

这些让我到了可以奔跑的地方

$ ruby script/generate rspec
这对我来说很有效,而git指令却不起作用。

您需要这样做

sudo gem install cucumber-rails

如果现在有人想知道Rails 3, 这似乎对我有好处:
我使用的是rails 2.3.9。我开始尝试使用gem,但就是无法让rspec的生成器出现。然后我使用上的说明安装了插件,这就成功了

如果您使用的是bundler 1.0.8版,则应
$gem将bundler更新到更新的1.0.9版

我也有同样的症状,更新bundler帮了我的忙。 现在,
$rails g
正在使用gem文件中定义的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
组中。)

祝你今天愉快:)

路轨3和rspec 2的卢卡斯+ 您必须确保在GEM文件中包含“rspec”和“rspec rails” 运行包安装
然后运行rails g rspec:install

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

Rails 2 RSpec生成器

 rails generate rspec_model mymodel
Rails 3 RSpec生成器

 rails generate rspec_model mymodel
使用RSpec作为默认测试框架,只需使用Rails自己的生成器。这将构造您需要的所有文件,包括RSpec测试。e、 g

  $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

如果您使用的是rails 2.3,则需要使用

ruby脚本/插件安装git://github.com/dchelimsky/rspec-rails.git -r'参考/标签/1.3.3'

然后


ruby脚本/generate rspec

您可能需要运行bundle exec:

bundle exec rails g rspec:install

如果您键入
script/railsgenerate
,您将实际看到的唯一RSpec生成器是
RSpec:install
。这是因为RSpec在Rails中注册为测试框架,所以每当您生成诸如模型、控制器等应用程序组件时,都会生成RSpec规范,而不是
test::Unit
tests

请注意,生成器是用来帮助您入门的,但它们不能代替编写您自己的示例,而且它们只能保证在默认场景(ActiveRecord&Webrat)中开箱即用


请提供更多关于您的设置和所做工作的详细信息。我使用script/generate rspec,因为这是它在网站上说明的下一步。我无法用这个新版本运行这个脚本,或者我的任何rspec测试。是的,rspec生成器设置了一些类似spec_helper.rb的模板。在rails 3中,“rails生成控制器mycontroller”谢谢!在运行script/generate-rspec-model-mymodel时,我一直没有得到任何生成。这为我解决了这个问题。谢谢如果您正在阅读这些rails 2.x说明,并试图将其转换为rails 3.x,您还想知道,例如,“script/generate rspec_controller Users new”已经变成了“rails generate controller Users new”(“controller”生成器已经过rspec的培训,如果您已经安装了它),“rspec_模型”更改为“模型”。谢谢你的指点!实际上,
rspec\u model
现在已更改为
rspec:model
。您可以使用
railsgenerate
查看所有其他生成器这对我来说适用于rails4和rspec2.13,我缺少rspecrails。