2010-10-04 18 views
5

He instalado growl + rspec + autotest en mi máquina con Windows 7. Desde el símbolo del sistema, cuando escribo 'espec. Rspec /' no funciona. Las pruebas solo se ejecutarán si utilizo 'rake spec /' + 'autotest'.Obtención de autotest Rspec + trabajando en Windows

Además, estoy ejecutando estas pruebas: http://railstutorial.org/chapters/static-pages#code:default_pages_controller_spec (es decir, muy, muy trivial) y están tomando 8,11 segundos.

También fallan cuando los ejecuto, aunque no en el ejemplo. He hecho todo lo que el tutorial me dijo, el problema es que el tutorial no profundiza en la instalación de rspec en una máquina con Windows. Da un enlace, pero incluso entonces tienes que unir las instrucciones.

Los errores que recibo son 'Failure/Error: Unable to find C to read failed line [31mundefined methord get' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x48336c0>'

El segundo error es muy similar a eso.

También he instalado Growl correctamente, porque recibo una notificación de que hubo dos fallas.

¿Alguien me puede ayudar?

+0

marcamillion, cuando tengas oportunidad, ¿podrías comentar con las versiones exactas de ruby, rails, rspec y autotest con las que ves este problema? Voy a tratar de reproducirlo con la última versión estable de cada uno de estos, pero solo en caso de que desee conocer sus versiones. – carols10cents

Respuesta

1

No he encontrado una solución permanente que funcione todavía, pero aparentemente se reduce a un problema de ruta: algo está cerrando la ruta de Windows y se rompe. Sin embargo, hay un trabajo en torno a:

Dentro de su describir, antes de que el 'conseguir' llamar, poner esto:

incluyen RSpec :: Rails :: ControllerExampleGroup

Aquí está el código de ejemplo usando una especificación de rieles generado para un controlador. Tenga en cuenta que es al principio del alcance:

require 'spec_helper' 

describe PagesController do 
    include RSpec::Rails::ControllerExampleGroup 

    describe "GET 'home'" do 
    it "should be successful" do 
     get 'home' 
     response.should be_success 
    end 
    end 

    describe "GET 'contact'" do 
    it "should be successful" do 
     get 'contact' 
     response.should be_success 
    end 
    end 

end 

Hay una solución que he visto que sugiere un cambio en spec_helper (en el caso rieles), pero no pude conseguir que funcione.

EDITAR: Un poco más de investigación revela que este es un problema con autospec: este trabajo funcionará si solo está utilizando rspec, pero no funcionará con autotest. Sin embargo, no he podido encontrar una solución para esto.

+0

Yeh ... Estoy usando autotest :( – marcamillion

2

Hice un poco de google, y de acuerdo con this thread on the rspec ruby forum y this closed rspec-rails issue, este es un problema con rspec-rails que se ha corregido.

Estoy ejecutando Ruby 1.9.2p136 en Windows 7 utilizando los rieles 3.0.3.

Esto es lo que parecía mi Gemfile similares, que muestra las versiones de rspec y rspec-carriles que estaba usando:

source 'http://rubygems.org' 

gem 'rails', '3.0.3' 
gem 'sqlite3-ruby', :require => 'sqlite3' 

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

group :test do 
    gem 'rspec', '2.4.0' 
    gem 'webrat', '0.7.1' 
end 

digo "parecía" porque cuando intenté funcionar el generador de rieles rspec , esto es lo que tengo:

C:\Ruby\sample_app>rails generate rspec:install 
    create .rspec 
    create spec 
    create spec/spec_helper.rb 
Could not find "autotest" in any of your source paths. Your current source paths 
are: 
C:/Ruby/sample_app/lib/templates/rspec/install 
C:/Ruby/192-stackoverflow/lib/ruby/gems/1.9.1/gems/rspec-rails-2.3.0/lib/generators/rspec/install/templates 

Así que he añadido a mi autotest Gemfile (y me instalo nuevo paquete), y luego trató rieles generan rspec: instalar de nuevo y funcionó sin errores. Así que esto es lo que mi Gemfile ve ahora:

source 'http://rubygems.org' 

gem 'rails', '3.0.3' 
gem 'sqlite3-ruby', :require => 'sqlite3' 

group :development do 
    gem 'autotest' 
    gem 'rspec-rails', '2.4.1' 
end 

group :test do 
    gem 'rspec', '2.4.0' 
    gem 'webrat', '0.7.1' 
end 

Y la versión de prueba automática que este se instala es de 4,4.6:

C:\Ruby\sample_app>bundle show autotest 
C:/Ruby/192-stackoverflow/lib/ruby/gems/1.9.1/gems/autotest-4.4.6 

Entonces creé el controlador como se indica en el tutorial:

$ rails generate controller Pages home contact 

Y yo era capaz de correr tanto "autotest ejecutivo de paquete" y "especificaciones rspec /" sin que el error se están viendo:

C:\Ruby\sample_app>bundle exec autotest 
loading autotest/rspec2 
bundle exec C:\Ruby\192-stackoverflow\bin\ruby -S C:/Ruby/192-stackoverflow/lib/ruby/gems/1.9.1/gems/rspec-core-2.4.0/bin/rspec --tty 'C:/Ruby/sample_app/spec/controllers/pages_controller_spec.rb' 
.. 

Finished in 23.04 seconds 
2 examples, 0 failures 
# I killed autotest with CTRL-c at this point 
Interrupt a second time to quit 
Terminate batch job (Y/N)? y 
Terminate batch job (Y/N)? y 


C:\Ruby\sample_app>rspec spec/ 
.. 

Finished in 23.11 seconds 
2 examples, 0 failures 

también continuó con el tutorial, escribir las especificaciones de la página Acerca de, mientras autotest estaba corriendo y se ejecuta en mis cambios sin ningún problema.

por tanto, consulte:

  1. Actualización de su gemspec a un aspecto similar a mi segundo uno publicado aquí
  2. Running 'bundle install'
  3. Running 'autotest ejecutivo de paquete'

y avísame si eso funciona. ¡Estaré revisando!

1

pensé que esto podría ayudar a aquellos que podrían estar teniendo problemas ahora que todas las gemas se han actualizado un poco (sobre todo para aquellos que utilizan Ruby on Rails 3 tutorial):

yo era capaz de conseguir este trabajo utilizando las últimas versiones de todas las gemas:

Mi Gemfile:

source 'https://rubygems.org' 

gem 'rails', '3.2.6' 
gem 'jquery-rails' 

gem 'sqlite3', :group => [:development, :test] 
gem 'pg', :group => :production #This is so Heroku will work 

group :development do 
    gem 'rspec-rails' 
end 

group :test do 
    gem 'rspec' 
    gem 'webrat' 
    gem 'spork-rails' #Use this is only if you want to use spork 
end 

Asegúrese de limpiar rspec si ya tiene una versión anterior (utilizando el rubí en los carriles 3 tutorial, por ejemplo) : https://stackoverflow.com/a/4433217/911133

Para utilizar autotest siga las instrucciones aquí: https://github.com/svoop/autotest-growl

Tenga en cuenta que la instalación de gruñido fines de Windows es parte del acuerdo y un gruñido es no necesario: http://www.growlforwindows.com/

Su archivo puede ser .autotest en uno de dos lugares

1) su directorio principal, que es (ejemplo):

C:\users\joeblow\.autotest 

2) la raíz de la aplicación rieles (esto funcionará entonces sólo para esa aplicación)

mi archivo .autotest se ve así:

require 'autotest/growl' 
require 'autotest/restart' 
require 'autotest/timestamp' 

Autotest.add_hook :initialize do |autotest| 
    autotest.add_mapping(%r%^spec/(requrests)/.*rb$%) do 
|filename, _| 
filename 
end 
end 

Autotest::Growl::clear_terminal = false 

Asegúrese de que ha hecho un 'bundle install'

a continuación, ejecute Growl para windows (menú de inicio o arranque Inicio de windows)

plazo de autotest en la línea de comandos y usted debe ser bueno para ir!

c:\users\joeblow\workspace\Rails\MyRailsProject> autotest 
Cuestiones relacionadas