Pregunta

Me pregunto si hay un complemento o gema para Ruby on Rails que incluya la validación de HTML (SGML o Tidy) en un ciclo de prueba.

Solo soy consciente de este complemento . Buscando alternativas ...

¿Fue útil?

Solución

Yo uso be_valid_asset con rspec y cucumber. Utiliza el validador público del W3C. No tiene el enlace que comprueba que tiene html_test .

Lo uso en estos dos pasos en webrat_steps.rb de cucumber:

Given /^(?:|I )am on (.+)$/ do |page_name|
  visit path_to(page_name)
  response.should be_valid_xhtml if ENV['VALIDATE_HTML']
end

When /^(?:|I )go to (.+)$/ do |page_name|
  visit path_to(page_name)
  response.should be_valid_xhtml if ENV['VALIDATE_HTML']
end

Luego puedo ejecutar rastrillo VALIDATE_HTML = 1 cucumber para validar todas las páginas visitadas por mis archivos de características de cucumber.

Otros consejos

Aquí hay un validador basado en Rack que se puede usar en vivo: http: // coderack .org / users / nerdEd / entries / 95-rackvalidate

Estoy trabajando en una gema de validación HTML / CSS todo en uno para las aplicaciones de Ruby On Rails. Su nombre es Headhunter .

De la documentación:

  

Headhunter es una herramienta de validación de HTML y CSS que se inserta en las pruebas de características de Rails y verifica automáticamente la validez de todos los HTML y CSS generados.

     

Además, también tiene en cuenta los selectores de CSS no utilizados (y, por lo tanto, superfluos).

Todo lo que tienes que hacer es agregar gem 'headhunter' a tu Gemfile en el entorno de prueba:

group :test do
  gem 'headhunter'
end

El resto se realiza automáticamente por usted, y obtendrá una estadística de la validez de su aplicación al final de sus pruebas, como esta:

Validated 42 HTML pages.
41 pages are valid.
1 page is invalid.
Open .validation/results.html to view full results.

Validated 1 stylesheets.
1 stylesheet is invalid.
  application.css:
  - Invalid css: line 1: Property bla doesn't exist

Found 23 CSS selectors.
20 selectors are in use.
3 selectors are not in use: a img, #flash.failure, input[type='file']
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top