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 提供 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 版本。

4

13 回答 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
于 2011-05-31T14:47:25.147 回答
8

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

script/generate rspec

需要安装 rspec-rails gem。

于 2008-11-07T23:03:45.220 回答
2

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

于 2011-05-23T14:48:35.693 回答
2

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

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

接着

ruby 脚本/生成 rspec

于 2011-09-29T13:23:57.440 回答
1

我以前遇到过这个问题,它归结为我没有使用我正在使用的 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
于 2009-01-01T16:53:06.460 回答
1

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

script/generate rspec_model mymodel
script/generate rspec_controller mycontroller
于 2008-11-07T20:24:38.957 回答
1

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

于 2010-09-27T00:05:18.897 回答
1

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

$ sudo gem install rspec

$ sudo gem install rspec-rails 

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

$ ruby script/generate rspec

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

于 2009-05-23T17:38:39.803 回答
1

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

于 2010-12-18T19:28:01.287 回答
0

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

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

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

于 2012-11-17T01:46:00.590 回答
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组中。)

祝你今天过得愉快 :)

卢卡斯

于 2011-01-22T10:12:59.003 回答
-1

您可能需要运行 bundle exec :

bundle exec rails g rspec:install
于 2012-05-04T12:52:50.040 回答
-2

你需要做

sudo gem install cucumber-rails
于 2010-03-15T04:55:04.983 回答