RoR plugin / gem para validación html [cerrado]
-
05-07-2019 - |
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 ...
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']