找不到'rspec'发电机

时间:2008-11-07 17:42:05

标签: ruby-on-rails rspec

我正在尝试将RSpec安装为插件后将其作为gem安装。我已经按照{strong> rspec和rspec-rails gems 一节中的指示http://github.com/dchelimsky/rspec-rails/wikis进行了操作。当我运行ruby script/generate rspec时,我收到错误Couldn't find 'rspec' generator。只做插件有效吗?如果是这样,为什么他们甚至为rspec和rspec-rails提供宝石?我正在运行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。

13 个答案:

答案 0 :(得分:10)

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

Rails 2 RSpec生成器

 rails generate rspec_model mymodel

Rails 3 RSpec生成器

使用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

答案 1 :(得分:8)

你是否安装了rspec和rspec-rails gems?

script/generate rspec

需要安装rspec-rails gem。

答案 2 :(得分:2)

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

答案 3 :(得分:2)

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

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

然后

ruby​​脚本/生成rspec

答案 4 :(得分:1)

是否应该有'rspec'发生器?我只使用了以下内容:

script/generate rspec_model mymodel
script/generate rspec_controller mycontroller

答案 5 :(得分:1)

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

我已经采用了主要的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

答案 6 :(得分:1)

在Fedora 9(OLPC)上我做了:

$ sudo gem install rspec

$ sudo gem install rspec-rails 

那些让我到了可以跑的地方

$ ruby script/generate rspec

这对我有用,而git说明不起作用。

答案 7 :(得分:1)

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

答案 8 :(得分:1)

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

答案 9 :(得分:0)

如果您使用的是捆绑版本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

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

度过愉快的一天:)

的Lukas

答案 10 :(得分:0)

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

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

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

答案 11 :(得分:-1)

您可能需要运行bundle exec:

bundle exec rails g rspec:install

答案 12 :(得分:-2)

你需要做

sudo gem install cucumber-rails