ruby-on-rails ruby ruby-on-rails-3 rspec autotest

ruby on rails - ¿Por qué Rspec dice "Error/error: no se puede encontrar la línea coincidente desde la traza inversa"?



ruby-on-rails ruby-on-rails-3 (11)

Estoy siguiendo el tutorial de rieles aquí: http://railstutorial.org/chapters/filling-in-the-layout#top

Cuando ejecuto "especificación rspec /", recibo un montón de errores que se ven así:

1) LayoutLinks should have a Home page at ''/'' Failure/Error: Unable to find matching line from backtrace stack level too deep # C:/Ruby19/lib/ruby/1.9.1/forwardable.rb:185 2) LayoutLinks should have a Contact page at ''/contact'' Failure/Error: Unable to find matching line from backtrace stack level too deep # C:/Ruby19/lib/ruby/1.9.1/forwardable.rb:185

Pero cuando voy a mi buscador web a localhost: 3000 / y localhost: 3000 / contact, las páginas están allí y los títulos correctos están allí. Aquí está mi archivo myrailsroot / spec / requests / layout_links_spec.rb:

require ''spec_helper'' describe "LayoutLinks" do it "should have a Home page at ''/''" do get ''/'' response.should have_selector(''title'', :content => "Home") end it "should have a Contact page at ''/contact''" do get ''/contact'' response.should have_selector(''title'', :content => "Contact") end it "should have an About page at ''/about''" do get ''/about'' response.should have_selector(''title'', :content => "About") end it "should have a Help page at ''/help''" do get ''/help'' response.should have_selector(''title'', :content => "Help") end it "should have a signup page at ''/signup''" do get ''/signup'' response.should have_selector(''title'', :content => "Sign up") end end

Cualquier idea sería genial, gracias


"Golpeó" a Spork y me arregló el problema.


Actualicé a beta.20 que ahora está fuera. Tuve que agregar webrat en mi gemfile y hacer otra instalación de paquete. En el gemfile, se ve así:

group :test do gem "webrat" gem ''rspec'', ''2.0.0.beta.20'' end

Aclamaciones


Esto no parece ser un problema a partir de rspec 2.2.0


Esto se debe a un error en RSpec 2.0.0.beta.19. Si usa 2.0.0.beta.18 como sugiere el tutorial, funcionará bien. Simplemente cambie la versión que tenga en su Gemfile a beta 18, realice la instalación del paquete y vuelva a ejecutar las pruebas.

Aquí están las partes relevantes de mi Gemfile.

group :development do gem ''rspec-rails'', ''2.0.0.beta.18'' end group :test do gem ''rspec-rails'', ''2.0.0.beta.18'' gem ''spork'', ''0.8.4'' end

También tenga en cuenta que Spork también puede causar problemas como este de vez en cuando. Si obtiene fallas de prueba inexplicables, especialmente si acaba de agregar nuevos controladores o acciones, vaya a dar una patada a spork. Presiona Ctrl-C y ejecuta el servidor spork nuevamente.


LO CONSEGUYO FUNCIONANDO

CAMINO__! más información de la que necesita, pero por lo que vale, este Gemfile ...

source ''http://rubygems.org'' gem ''rails'', ''3.0.3'' # Bundle edge Rails instead: <br/> # gem ''rails'', :git => ''git://github.com/rails/rails.git'' gem ''sqlite3-ruby'', :require => ''sqlite3'' # Use unicorn as the web server<br/> # gem ''unicorn'' # Deploy with Capistrano<br/> # gem ''capistrano'' # To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)<br/> # gem ''ruby-debug''<br/> # gem ''ruby-debug19'' # Bundle the extra gems:<br/> # gem ''bj''<br/> # gem ''nokogiri''<br/> # gem ''sqlite3-ruby'', :require => ''sqlite3''<br/> # gem ''aws-s3'', :require => ''aws/s3''<br/> # Bundle gems for the local environment. Make sure to<br/> # put test-only gems in this group so their generators<br/> # and rake tasks are available in development mode:<br/> # group :development, :test do<br/> # gem ''webrat''<br/> # end<br/> group :test, :development do<br/> gem ''rspec-rails'', ''2.0.0.beta.18''<br/> # gem ''capybara''<br/> gem ''webrat'', ''0.7.1''<br/> gem ''database_cleaner''<br/> gem ''cucumber-rails''<br/> gem ''cucumber''<br/> gem ''spork''<br/> gem ''launchy''<br/> end

... después de correr ...

$ bundle install

... y ...

$ bundle update webrat

... resultados en este ... paquete ...

Using rake (0.8.7) <br/> Using abstract (1.0.0) <br/> Using activesupport (3.0.3) <br/> Using builder (2.1.2) <br/> Using i18n (0.5.0) <br/> Using activemodel (3.0.3) <br/> Using erubis (2.6.6) <br/> Using rack (1.2.1) <br/> Using rack-mount (0.6.13) <br/> Using rack-test (0.5.7) <br/> Using tzinfo (0.3.23) <br/> Using actionpack (3.0.3) <br/> Using mime-types (1.16) <br/> Using polyglot (0.3.1) <br/> Using treetop (1.4.9) <br/> Using mail (2.2.14) <br/> Using actionmailer (3.0.3) <br/> Using arel (2.0.7) <br/> Using activerecord (3.0.3) <br/> Using activeresource (3.0.3) <br/> Using bundler (1.0.7) <br/> Using configuration (1.2.0) <br/> Using diff-lcs (1.1.2) <br/> Using json (1.4.6) <br/> Using gherkin (2.3.3) <br/> Using term-ansicolor (1.0.5) <br/> Using cucumber (0.10.0) <br/> Using cucumber-rails (0.3.2) <br/> Using database_cleaner (0.6.0) <br/> Using launchy (0.3.7) <br/> Using nokogiri (1.4.4) <br/> Using thor (0.14.6) <br/> Using railties (3.0.3) <br/> Using rails (3.0.3) <br/> Using rspec-core (2.4.0) <br/> Using rspec-expectations (2.4.0) <br/> Using rspec-mocks (2.4.0) <br/> Using rspec (2.4.0) <br/> Using webrat (0.7.1) <br/> Using rspec-rails (2.0.0.beta.18) <br/> Using spork (0.8.4) <br/> Using sqlite3-ruby (1.3.2)

... que obtuvo todas las pruebas de aplicación de muestra (hasta el final del Capítulo 5) para ejecutar nuevamente.


Lo siguiente me solucionó el problema.

gem install rspec-rails sudo apt-get install libxslt-dev libxml2-dev bundle install rails generate rspec:install


Puedo confirmar que el siguiente Gemfile funciona correctamente ...

group :test do gem ''rspec'', ''2.0.0.beta.18'' gem ''spork'', ''0.8.4'' gem ''webrat'', ''0.7.1'' end


Solo veo este problema en dos de mis exámenes de título.

Mi gemfile es el siguiente ...

source ''http://rubygems.org'' gem ''rails'', ''3.0.0'' gem ''sqlite3-ruby'', ''1.2.5'', :require => ''sqlite3'' gem ''gravatar_image_tag'', ''0.1.0'' gem ''will_paginate'', ''3.0.pre2'' group :development do gem ''rspec-rails'', ''2.0.0.rc'' gem ''webrat'', ''0.7.1'' gem ''annotate-models'', ''1.0.4'' gem ''faker'', ''0.3.1'' end group :test do gem ''rspec'', ''2.0.0.rc'' gem ''webrat'', ''0.7.1'' gem ''spork'', ''0.8.4'' gem ''factory_girl_rails'', ''1.0'' end

También probé las versiones beta de rspec-rails, sin éxito.

Los dos títulos que aún me dan errores son los siguientes:

De users_controller_spec.rc

it "should have the right title" do get :index response.should have_selector("title", :content => "All users") end #... it "should have the right title" do post :create, :user => @attr response.should have_selector("title", :content => "Sign up") end

El fragmento de los errores dice:

Failures: 1) UsersController GET ''index'' for signed-in users should have the right title Failure/Error: response.should have_selector("title", :content => "All users") expected following output to contain a <title>All users</title> tag: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Ruby on Rails Tutorial Sample App | All Users</title>

y

2) UsersController Post ''create'' for non-signed in users failure should have the right title Failure/Error: response.should have_selector("title", :content => "Sign up") expected following output to contain a <title>Sign up</title> tag: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Ruby on Rails Tutorial Sample App | Sign Up</title>

respectivamente.

Como se ve en la salida, "Registrarse" e "Índice" se muestran claramente a la derecha del título. Esto es particularmente desconcertante en eso, la siguiente prueba funciona:

it "should have the right title" do get :new response.should have_selector("title", :content => "Sign up") end

Que es para la misma página y contiene el mismo título que la otra prueba de "Registrarse". También el método get funciona en esta prueba pero no en la prueba "Index".

¿Ayuda?


Todavía estaba viendo este problema hasta que especifiqué webrat 0.7.1.


jaja, reiniciar spork y autotest hizo el truco. necesita una buena patada de vez en cuando. Estoy ejecutando rspec-rails 2.6.1 por cierto ...


mi gemfile se veía así y funciona

group :test do gem ''rspec-rails'' gem ''webrat'', ''0.7.1'' end

donde rspec-rails (2.1.0)

sin embargo, lo siguiente no:

group :test do gem ''rspec-rails'' gem ''webrat'', ''0.7.2'' end

Así que creo que es webrat juega hasta.