tests test_helper test rails how ruby-on-rails rspec gem testunit

test_helper - Ruby on Rails: cambia de test_unit a rspec



test ruby on rails (9)

1. cuando cree una nueva aplicación de rieles, omita el marco TestUnit, o generará el directorio test_unit.

$rails new your_app --skip-test-unit

2. agregue el código siguiente a su archivo_app / config / application.rb:

config.generators do |g| g.test_framework :rspec end

3. agregue el código siguiente al Gemfile de su_aplicación:

group :test, :development do gem ''rspec-rails'' end y ejecuta bundle install para instalar la gema rspec

4. Inicializa la especificación / directorio

rails generate rspec:install

más detalles, consulte: https://github.com/rspec/rspec-rails

Estoy repasando un tutorial que sugirió el uso de rspec , pero ya he pasado por una gran cantidad de instalación de rieles predeterminada. Realmente no quiero tener que volver a hacer la instalación. De todos modos, cuando corro

$ rails g integration_test named

yo obtengo

invoke test_unit create test/integration/named_test.rb

Cuando ejecuto bundle , se enumeran varias gemas rspec , pero test_unit no. El tutorial parece tener rails invocar rspec lugar de test_unit sin hacer nada adicional. ¿Cómo obtengo los rieles para usar rspec con el comando generador de prueba de integración?


A partir de Rails 3.2.12, siga estos pasos en orden

rails new app_name --skip-test-unit

Agregue rspec-rails a su Gemfile en el desarrollo, grupo de prueba

group :development, :test do gem ''rspec-rails'' end

Ejecutar la bundle install

Ejecute el generador

rails generate rspec:install

... y limpiar su directorio de prueba existente:

rm -Rf $RAILS_ROOT/test


En config / application, agregue este código

config.generators do |g| g.test_framework :rspec g.integration_tool :rspec end


En su archivo config/application.rb :

config.generators do |g| g.test_framework :rspec end

Ahora cuando ejecuta sus generadores, obtiene archivos de prueba rspec. Recuerde reiniciar su servidor. Para más información sobre generadores ver:

RailsCasts # 216 Generators in Rails 3

Si realmente quieres usar el generador de prueba de integración:

rails g integration_test named --integration-tool=rspec


Lo que encontré que hice es que algunos de los otros métodos funcionan todavía es para verificar mi ortografía ... Tenía lo que @tovodeverett tenía para agrupar rspec-rails con: desarrollo y prueba, pero deletreaba el desarrollo incorrectamente. Eso solucionó mi problema, pero estaba generando pruebas con test_unit en lugar de rspec.


Para usar RSpec en lugar de Test :: Unit predeterminado, ejecute primero el siguiente comando

$ rails generate rspec:install

Este comando creará la siguiente carpeta / archivos

create .rspec create spec create spec/spec_helper.rb

Ahora, cada vez que use un generador para generar componentes de rieles como controlador, modelo, etc., creará las RSpecs correspondientes.


Se encontró con este problema hoy. application.rb tiene que actualizarse con:

config.generators do |g| g.test_framework :rspec g.integration_tool :rspec end


Trabajando con Rails 3.2.8 y rspec-rails 2.11.4 , descubrí que mi problema estaba en mi Gemfile. Tenía rspec-rails en el :test grupo de :test pero no en el grupo de :development . Como Rails se ejecuta de manera predeterminada en modo de desarrollo (incluso cuando se ejecuta generate), rspec-rails debe estar en su :development grupo de :development para que se enganche en los generadores. Una vez que tuve eso en su lugar, todo funcionó bien.


$ rails g model Account invoke active_record create db/migrate/20140205052617_create_accounts.rb create app/models/account.rb invoke test_unit create test/models/account_test.rb create test/fixtures/accounts.yml $ rails d model Account

La ejecución de script / rails genera rspec: install no agrega rspec como marco predeterminado. Se agregó el comando debajo en config / application.rb y luego funciona

config.generators do |g| g.test_framework :rspec end $ rails g model Account invoke active_record create db/migrate/20140205052957_create_accounts.rb create app/models/account.rb invoke rspec create spec/models/account_spec.rb $ rails -v Rails 4.0.2