我正在尝试将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。
答案 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 )。
答案 11 :(得分:-1)
您可能需要运行bundle exec:
bundle exec rails g rspec:install
答案 12 :(得分:-2)
你需要做
sudo gem install cucumber-rails