ruby-on-rails - tests - rspec rails tutorial
No se pudo encontrar el generador ''rspec'' (13)
Intento instalar RSpec como una gema después de haberlo instalado como un complemento. He seguido y seguí las instrucciones que se encuentran aquí http://github.com/dchelimsky/rspec-rails/wikis para la sección titulada rspec y rspec-rails gems . Cuando ejecuto el ruby script/generate rspec
, obtengo el error Couldn''t find ''rspec'' generator
. ¿Funcionan solo los complementos? Si es así, ¿por qué ofrecen las gemas para rspec y rspec-rails? Estoy ejecutando una copia congelada de Rails 2.1.2, y la versión de rpsec y rspec-rails que estoy usando es la más nueva para hoy (7 de noviembre de 2008) 1.1.11.
EDITAR 12 de noviembre de 2008 Tengo las gemas rspec y rspec-rails instaladas. He desempaquetado las gemas en la carpeta vendedor / gemas. Ambos son la versión 1.1.11.
¿Has instalado gemas rspec y rspec-rails?
script/generate rspec
requiere que se instale la gema rspec-rails.
¿Se supone que hay un generador ''rspec''? Solo he usado lo siguiente:
script/generate rspec_model mymodel
script/generate rspec_controller mycontroller
He tenido este problema antes, se reducía a la versión de RSpec. No había trabajado con la versión de Rails que estaba usando. IIRC era un 2.1 Rails y el RSpec actualizado no había sido lanzado como una joya. De hecho, 1.1.11 es la joya que tengo, que sería la última disponible (ignorando las gemas de Github), así que estoy bastante seguro de que ese es exactamente mi problema.
Empecé a usar simplemente la cabeza del maestro rspec con la versión de Rails en la que estoy, me parece estable (y no va a romper las cosas en producción, a menos que de alguna manera se rompa una prueba con un falso positivo) .
Lo hago con git usando submódulos, por ejemplo:
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
En caso de que alguien se esté preguntando sobre Rails 3 ahora, esto parece ser el truco para mí: http://github.com/rspec/rspec-rails/blob/29817932b99fc45adaa93c3f75d503c69aafcaef/README.markdown
Estoy usando Rails 2.3.9. Empecé a tratar de usar la (s) gema (s) pero no pude conseguir que apareciera el generador de rspec. Luego instalé el (los) plugin (es) usando las instrucciones en https://github.com/dchelimsky/rspec/wiki/rails y ese fue el truco.
En Fedora 9 (OLPC) lo hice:
$ sudo gem install rspec
$ sudo gem install rspec-rails
Esos me llevaron a donde podría correr
$ ruby script/generate rspec
Esto funcionó para mí, mientras que las instrucciones de git no funcionaron.
Tendrás que hacer
sudo gem install cucumber-rails
Si está utilizando la versión 1.0.8 de bundler, debería $ gem update bundler
a una versión más nueva 1.0.9.
Tenía los mismos síntomas y la actualización de bundler me ayudó. Ahora $ rails g
está utilizando gemas definidas en el Gemfile. También agrupé mis gemas así:
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
(Tenga en cuenta que las gemas de prueba también están en el :development
grupo de :development
).
Que tengas un buen día :)
Lukas
Para Rails 3 y rspec 2+ Debe asegurarse de incluir ''rspec'' y rspec-rails ''en su Gemfile Run Bundle Install y luego ejecutar rails g rspec: install
Si usa raíles 2.3, debe usar
ruby script / plugin install git: //github.com/dchelimsky/rspec-rails.git -r ''refs / tags / 1.3.3''
y entonces
ruby script / generate rspec
Como RSpec se ha convertido en el marco de prueba predeterminado en Rails, ya no es necesario crear documentos de especificaciones a través de los generadores de rspec:
Rails 2 generador de RSpec
rails generate rspec_model mymodel
Rails 3 generador de RSpec
Con RSpec como marco de prueba predeterminado, simplemente use los propios generadores de Rails. Esto construirá todos los archivos que necesita, incluidas las pruebas RSpec. p.ej
$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
Es posible que necesite ejecutar bundle exec:
bundle exec rails g rspec:install
Si escribe script/rails generate
, el único generador de RSpec que realmente verá es rspec:install
. Esto se debe a que RSpec está registrado en Rails como marco de prueba, por lo que cada vez que genere componentes de aplicaciones como modelos, controladores, etc., se generarán especificaciones de RSpec en lugar de Test::Unit
de Test::Unit
.
Tenga en cuenta que los generadores están ahí para ayudarlo a comenzar, pero no son un sustituto para escribir sus propios ejemplos, y solo están garantizados para funcionar de la caja para el escenario predeterminado ( ActiveRecord y Webrat ).