找不到“rspec”生成器。

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

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


请提供更详细的设置和您所做的操作。 - James Baker
13个回答

10

由于 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

所以在第三步中,“rspec_model”被更改为“model”。感谢指引! - JAR.JAR.beans
2
实际上,rspec_model现在已经更改为rspec:model。你可以使用rails generate来查看所有其他的生成器。 - tommasop

8

您是否已安装了rspec和rspec-rails两个gem包?

script/generate rspec

需要安装rspec-rails gem才能使用。

2

对于Rails 3和rspec 2+,你必须确保在Gemfile中包含'rspec'和'rspec-rails' 运行Bundle Install 然后运行rails g rspec:install


这对我在rails 4和rspec 2.13中有效,我缺少了rspec-rails。 - LisaD

2

如果您正在使用Rails 2.3,则需要使用:

ruby script/plugin install git://github.com/dchelimsky/rspec-rails.git -r 'refs/tags/1.3.3'

然后运行:

ruby script/generate rspec


1

我正在使用 Rails 2.3.9。一开始我尝试使用 gem,但是无法让 rspec 的生成器显示出来。然后我按照 https://github.com/dchelimsky/rspec/wiki/rails 上的说明安装了插件,这样就解决了问题。


1

如果您正在阅读这些针对Rails 2.x的说明,并尝试将其翻译为Rails 3.x,那么您还需要知道,例如,“script/generate rspec_controller Users new”已经变成了“rails generate controller Users new”(如果您安装了RSpec,则“controller”生成器已经被训练用于执行RSpec)。 - jackr

1
在 Fedora 9 (OLPC) 上,我执行了以下操作:
$ sudo gem install rspec

$ sudo gem install rspec-rails 

这些帮助我达到了可以运行的地步。

$ ruby script/generate rspec

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


1

应该有一个“rspec”生成器吗?我只用过以下内容:

script/generate rspec_model mymodel
script/generate rspec_controller mycontroller

我正在使用script/generate rspec,因为这是网站上指南中的下一步。但是我无法运行此脚本或任何新版本的rspec测试。 - mikeweber
是的,rspec生成器会设置一些样板文件,例如spec_helper.rb。 - Otto
在 Rails 3 中,"rails generate controller mycontroller"。 - jackr
谢谢!我一直在运行 script/generate rspec model mymodel,但是没有生成任何东西。 - eggmatters

1

我以前遇到过这个问题,归结为我使用的 RSpec 版本与 Rails 版本不兼容。如果我没记错,当时我使用的是 2.1 版本的 Rails,而更新的 RSpec 还没有作为 gem 发布。实际上,我现在使用的是 1.1.11 版本的 gem,这应该是最新版本(忽略 github 上的 gems),所以我相信这正是我的问题所在。

我已经开始使用 master rspec 的 head 版本,并与我正在使用的任何版本的 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

0
如果您正在使用bundler版本1.0.8,您应该$ gem update bundler到更新的版本1.0.9。
我曾经遇到过同样的症状,更新bundler帮助了我。 现在$ rails g正在使用Gemfile中定义的gems。 我也像这样分组我的gems:
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

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

祝您有美好的一天 :)

Lukas


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接