Pregunta

¿Alguien sabe cómo hacer assert_select no todas esas advertencias de salida html desagradables durante una prueba de inclinación? Ya sabes, como esto:

.ignoring attempt to close body with div
opened at byte 1036, line 5
closed at byte 5342, line 42
attributes at open: {"class"=>"inner02"}
text around open: "</script>\r\t</head>\r\t<body class=\"inner02"
text around close: "\t</div>\r\t\t\t</div>\r\t\t</div>\r\t</body>\r</ht"

Gracias

¿Fue útil?

Solución

Es más bien que su código está generando HTML válido. Le sugerimos que ejecute a través de un validador y la fijación de todos los errores de validación.

Otros consejos

Puede averiguar qué prueba se encontró con el problema mediante el uso de la bandera v TESTOPTS: (Exec bundle) rastrillo TESTOPTS de ensayo = "- v"

Esto dará a:

test: Request the homepage should have a node list. (PresentControllerTest): .
test: Request the homepage should have the correct title. (PresentControllerTest): ignoring attempt to close div with body
  opened at byte 4378, line 89
  closed at byte 17745, line 393
  attributes at open: {"class"=>"colleft"}
  text around open: "class=\"colmid\"> \n\t\t\t<div class=\"colleft\""
  text around close: "x2.js\" ></script>\n  </body>\n</html>\n\n"
ignoring attempt to close div with html
  opened at byte 4378, line 89
  closed at byte 17753, line 394
  attributes at open: {"class"=>"colleft"}
  text around open: "class=\"colmid\"> \n\t\t\t<div class=\"colleft\""
  text around close: "</script>\n  </body>\n</html>\n\n"
.
test: Request the homepage should not set the flash. (PresentControllerTest): .
test: Request the homepage should respond with 200. (PresentControllerTest): .

HTML escáner de rieles espera XHTML, si está usando HTML 4, donde las etiquetas no tienen etiquetas de cierre explícitas, puede obtener esta advertencia ... no se ve como problema resuelto

Lo que me gustaría es saber donde de la advertencia está viniendo. El hecho de que no especifica la prueba o el controlador / acción que genera el código HTML válido es el gran problema para mí.

He tenido algunos problemas después de una actualización a Rails 3.0.9 y 3.1.2 HAML Lo que hice fue silencio esas salidas feas con el siguiente código en test_helper.rb * *

# Wrap up the method assert_select because after updating to Rails 3.0.9 and HAML 3.1.2,
# I don't know why but it was raising warnings like this:
#     ignoring attempt to close section with body
#     opened at byte 6157, line 128
#     closed at byte 16614, line 391
#     attributes at open: {"class"=>"left-column"}
#     text around open: "->\n\n\n</span>\n</div>\n<section class='left"
#     text around close: "'1'>\n</noscript>\n</body>\n</html>\n"
# But the HTML seems to be valid (in this aspects) using a HTML validator.
ActionDispatch::Assertions::SelectorAssertions.class_eval do
  alias_method :assert_select_original, :assert_select
  def assert_select(*args, &block)
    original_verbosity = $-v # store original output value
    $-v = nil # set to nil
    assert_select_original(*args, &block)
    $-v = original_verbosity # and restore after execute assert_select
  end
end

De todos modos, no recomendamos el uso de una solución de este tipo. Utilizar sólo si usted tiene prisa, y darle un buen comentario para explicar por qué otros desarrolladores es ese pedazo de código estrange allí.

Para mí, la causa era válida pero mal formado HAML.

Esto es lo que tenía:

%ul
  %li
    = link_to "Help", help_url
  - if current_user
    %li
      = link_to "Users", users_url
      = link_to "Logout", logout_url
  - else
      = link_to "Login", login_url

Esto es lo que es correcto para lo que había querido hacer:

%ul
  %li
    = link_to "Help", help_url
  %li
    - if current_user
      = link_to "Users", users_url
      = link_to "Logout", logout_url
    - else
      = link_to "Login", login_url

La mejor manera de realizar un seguimiento de esto abajo es mirar con mucho cuidado en el "texto alrededor abierto" y "texto alrededor de cerca" y tratar de localizar dónde se produce en su plantilla al aire libre.

Incluso si lo hace rake test TESTOPTS="-v" y aparece el error de venir de sus plantillas de vista, NO se olvide de comprobar el html diseño de la aplicación. Esto sucedió a mí y tardó unos minutos más de lo que me gustaría admitir que van y vienen entre una pareja index.html.erb archivos antes de que finalmente descubierto. Lo mismo va para ningún parciales prestados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top